import javax.media.opengl.*; import javax.media.opengl.glu.*; import java.awt.*; import java.awt.event.*; public class JOGLColorPolygon implements GLEventListener { public JOGLColorPolygon() { Frame frame = new Frame("JOGL test - Polygon"); GLCanvas canvas = new GLCanvas(); canvas.addGLEventListener(this); frame.add(canvas); frame.setSize(500,500); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); frame.show(); } public void init(GLAutoDrawable drawable) { GL gl = drawable.getGL(); gl.glShadeModel(GL.GL_SMOOTH); gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); gl.glClearDepth(1.0f); gl.glEnable(GL.GL_DEPTH_TEST); gl.glDepthFunc(GL.GL_LEQUAL); gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST); } public void display(GLAutoDrawable drawable) { GL gl = drawable.getGL(); gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); gl.glLoadIdentity(); gl.glTranslatef(0.0f, 0.0f, -6.0f); gl.glBegin(GL.GL_TRIANGLES); gl.glColor3f(0.0f,0.0f,1.0f); gl.glVertex3f( 0.0f, 1.0f, 0.0f); gl.glColor3f(0.0f,1.0f,0.0f); gl.glVertex3f(-1.0f,-1.0f, 0.0f); gl.glColor3f(1.0f,0.0f,0.0f); gl.glVertex3f( 1.0f,-1.0f, 0.0f); gl.glEnd(); } public void reshape(GLAutoDrawable drawable, int x, int y, int w, int h) { GLU glu = new GLU(); GL gl = drawable.getGL(); gl.glClear(GL.GL_COLOR_BUFFER_BIT); gl.glMatrixMode(GL.GL_PROJECTION); gl.glLoadIdentity(); glu.gluPerspective(45.0f,w/h,0.1f,100.0f); gl.glMatrixMode(GL.GL_MODELVIEW); gl.glLoadIdentity(); } public void displayChanged( GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) { } public static void main (String[] args) { new JOGLColorPolygon(); } }