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);
}
}
Comments