package destr.jogl.main;
import javax.media.opengl.GL;
import javax.media.opengl.GL2;
import javax.media.opengl.GLAutoDrawable;
import destr.jogl.buffer.GLColorPointerRGBA;
import destr.jogl.buffer.GLVertixPointerXYZ;
import destr.jogl.game2d.Game2DCanvas;
public class GLPointerTest extends Game2DCanvas{
private static final long serialVersionUID = 5956392369871648818L;
public GLPointerTest(int width, int height) {
super(width, height);
}
private GLVertixPointerXYZ shape;
private GLColorPointerRGBA color;
@Override
public void init(GLAutoDrawable drawable){
super.init(drawable);
GL gl = drawable.getGL();
color = new GLColorPointerRGBA(gl, new float[]{
1,0,0,1,
0,1,0,1,
0,0,1,1,
1,1,0,1,
});
shape = new GLVertixPointerXYZ(gl, new float[]{
0,0,0,
1,0,0,
1,1,0,
0,1,0,
});
}
@Override
public void display(GLAutoDrawable drawable) {
GL gl = drawable.getGL();
GL2 gl2 = gl.getGL2();
gl2.glClear(GL2.GL_COLOR_BUFFER_BIT);
gl2.glLoadIdentity();
gl2.glTranslatef(-1f, 1f, 0);
gl2.glScalef(2.0f, -2.0f, 0f);
gl2.glScalef(0.25f, 0.25f, 0);
shape.bind(gl);
color.bind(gl);
gl2.glEnableClientState(GL2.GL_VERTEX_ARRAY);
gl2.glEnableClientState(GL2.GL_COLOR_ARRAY);
gl2.glDrawArrays(GL2.GL_QUADS, 0, 4);
gl2.glDisableClientState(GL2.GL_VERTEX_ARRAY);
gl2.glDisableClientState(GL2.GL_COLOR_ARRAY);
}
}
Comments