package destr.jogl.pointer; import javax.media.opengl.GL; import javax.media.opengl.GL2; public class VertixPointer extends Pointer { public VertixPointer(int id) { super(id); } public VertixPointer(GL gl) { super(gl); } protected int count; @Override public void load(GL gl, float[] data){ count = data.length / 3; super.load(gl, data); } @Override public void bind(GL gl) { GL2 gl2 = gl.getGL2(); gl2.glEnableClientState(GL2.GL_VERTEX_ARRAY); gl2.glBindBuffer(GL2.GL_ARRAY_BUFFER, this.id); gl2.glVertexPointer(3, this.glType, 0, 0); } @Override public void unBind(GL gl) { GL2 gl2 = gl.getGL2(); gl2.glBindBuffer(GL.GL_ARRAY_BUFFER, 0); gl2.glDisableClientState(GL2.GL_VERTEX_ARRAY); } @Override protected int getUsage() { return GL2.GL_STATIC_DRAW; } public void draw(GL gl, int mode) { gl.glDrawArrays(mode, 0, count); } public void draw(GL gl) { gl.glDrawArrays(GL.GL_TRIANGLES, 0, count); } }