المثال كما وعدتكم:
import java.awt.*;
import java.awt.event.*;
import net.java.games.jogl.*;
public class Lesson02
{
static class Renderer
implements GLEventListener,
KeyListener
{
public void display(GLDrawable gLDrawable)
{هنا يمكنك وضع أوامر الرسم بنفس الطريقة التي كنت تعمل بها في السي
فقط قم بتعريف Object gl
ثم إستدعي ال Function
من خلال ال gl
مثلا بدل من glLoadIdentity()
gl.glLoadIdentity()
و كما تعوّدت في السي
و كذلك glu
final GL gl = gLDrawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glTranslatef(-1.5f, 0.0f, -6.0f);
gl.glBegin(GL.GL_TRIANGLES); // Drawing Using Triangles
gl.glVertex3f( 0.0f, 1.0f, 0.0f); // Top
gl.glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
gl.glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
gl.glEnd(); // Finished Drawing The Triangle
gl.glTranslatef(3.0f, 0.0f, 0.0f);
gl.glBegin(GL.GL_QUADS); // Draw A Quad
gl.glVertex3f(-1.0f, 1.0f, 0.0f); // Top Left
gl.glVertex3f( 1.0f, 1.0f, 0.0f); // Top Right
gl.glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right
gl.glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left
gl.glEnd(); // Done Drawing The Quad
gl.glFlush();
}
public void displayChanged(GLDrawable gLDrawable, boolean modeChanged, boolean deviceChanged)
{
}هذا ال Function
يقوم بعمل إنشاء لل OpenGL
وتجهيز إستقبال الأحداث من keyboard
public void init(GLDrawable gLDrawable)
{
final GL gl = gLDrawable.getGL();
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
gl.glShadeModel(GL.GL_FLAT);
gLDrawable.addKeyListener(this);
}// تجهيز ال عرض من هنا
public void reshape(GLDrawable gLDrawable, int x, int y, int width, int height)
{{
final GL gl = gLDrawable.getGL();
final GLU glu = gLDrawable.getGLU();
if (height <= 0) // avoid a divide by zero error!
height = 1;
final float h = (float)width / (float)height;
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
glu.gluPerspective(45.0f, h, 1.0, 20.0);
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
}}
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
System.exit(0);
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
}
/** Program's main entry point
* @param args command line arguments.
*/
public static void main(String[] args)
{هنا تجهيز ال Window
Frame frame = new Frame("Lesson 2: Your First Polygon");
GLCanvas canvas = GLDrawableFactory.getFactory().createGLCanvas(new GLCapabilities());
canvas.addGLEventListener(new Renderer());
frame.add(canvas);
frame.setSize(640, 480);
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
frame.show();
canvas.requestFocus();
}
}الدرس من موقع