package destr.jogl.game2d; import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.FloatBuffer; import javax.media.opengl.GL; import javax.media.opengl.GL2; public abstract class Pointer implements GLBuffer { protected Buffer buffer; protected int glType; protected int count; protected int stride; public Pointer(int stride, float[]data){ ByteBuffer buffer = ByteBuffer.allocateDirect(data.length * Float.SIZE); buffer.order(ByteOrder.nativeOrder()); FloatBuffer fb = buffer.asFloatBuffer(); fb.put(data); fb.position(0); this.buffer = fb; this.count = data.length / stride; this.glType = GL2.GL_FLOAT; this.stride = stride; } public void draw(GL gl){ gl.getGL2().glDrawArrays(GL2.GL_TRIANGLES, 0, this.count); } public void draw(GL gl, int mode, int first){ gl.getGL2().glDrawArrays(mode, first, this.count); } }