1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
| this is in Main.java:
package test; import javax.media.opengl.*; import javax.swing.*;
public class Main {
public static void main(String[] args) { JFrame frame = new JFrame("Jogl Test"); frame.setSize(640,480); frame.setResizable(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); GLCanvas canvas = new GLCanvas();
SimpleJogl glevent = new SimpleJogl(); canvas.addGLEventListener(glevent); frame.add(canvas); frame.setVisible(true); }
}
this is in SimpleJogl.java:
package test; import javax.media.opengl.*; import javax.media.opengl.glu.*;
public class SimpleJogl implements GLEventListener { public SimpleJogl() { }
public void init(GLAutoDrawable glad) { GL gl = glad.getGL(); gl.setSwapInterval(1); 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 glad) { GL gl = glad.getGL(); gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); gl.glLoadIdentity(); gl.glTranslatef(-1.5f, 0.0f, -6.0f); gl.glRotatef(rtri, 0.0f, 1.0f, 0.0f); gl.glBegin(GL.GL_TRIANGLES); gl.glColor3f(1.0f, 0.0f, 0.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(0.0f, 0.0f, 1.0f); gl.glVertex3f( 1.0f,-1.0f, 0.0f); gl.glEnd(); gl.glLoadIdentity(); gl.glTranslatef(1.5f, 0.0f, -6.0f); gl.glRotatef(rquad, 1.0f, 0.0f, 0.0f); gl.glBegin(GL.GL_QUADS); gl.glColor3f(0.5f, 0.5f, 1.0f); gl.glVertex3f(-1.0f, 1.0f, 0.0f); gl.glVertex3f( 1.0f, 1.0f, 0.0f); gl.glVertex3f( 1.0f,-1.0f, 0.0f); gl.glVertex3f(-1.0f,-1.0f, 0.0f); gl.glEnd(); gl.glFlush(); rtri += 0.2f; rquad += 0.15f;
}
public void reshape(GLAutoDrawable glad, int x, int y, int width, int height) { final GL gl = glad.getGL(); GLU glu = new GLU();
if (height <= 0) 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 displayChanged(GLAutoDrawable glad, boolean bln, boolean bln1) { } private float rquad = 0.0f; private float rtri = 0.0f; } |