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
| public void render(SolidObjet objet) {
VertexBufferObjectStructure vbo = objet.getStructure().getVertexBufferObject();
// Enable Pointers
gl.glEnableClientState(GL.GL_VERTEX_ARRAY); // Enable Vertex
if (normalsId > 0) {
gl.glEnableClientState(GL.GL_NORMAL_ARRAY); // Enable Normals
}
// vertices
gl.glBindBufferARB(GL.GL_ARRAY_BUFFER_ARB, verticesId);
gl.glVertexPointer(3, GL.GL_FLOAT, 0, 0);
// normals
if (normalsId > 0) {
gl.glBindBufferARB(GL.GL_ARRAY_BUFFER_ARB, normalsId);
gl.glNormalPointer(GL.GL_FLOAT, 0, 0);
}
// Render
// Draw All Of The Triangles At Once
// gl.glDrawArrays(GL.GL_TRIANGLES, 0, nbVertices);
// gl.glDrawArrays(GL.GL_TRIANGLE_STRIP, 0, nbVertices);
// gl.glDr
// gl.glDrawArrays(GL.GL_TRIANGLE_FAN, 0, nbVertices);
// gl.glDrawArrays(GL.GL_POLYGON, 0, nbVertices);
// gl.glDrawArrays(GL.GL_POINTS, 0, nbVertices);
// index
gl.glBindBufferARB(GL.GL_ELEMENT_ARRAY_BUFFER, indexId);
gl.glDrawElements(GL.GL_QUADS, nbIndex, GL.GL_UNSIGNED_INT, 0);
// gl.glDrawElements(GL.GL_TRIANGLES, nbIndex, GL.GL_UNSIGNED_INT, 0);
// gl.glDrawElements(GL.GL_POLYGON, nbIndex, GL.GL_UNSIGNED_INT, 0);
gl.glBindBuffer(GL.GL_ELEMENT_ARRAY_BUFFER, 0);
// Disable Pointers
gl.glDisableClientState(GL.GL_VERTEX_ARRAY); // Disable Vertex Arrays
if (normalsId > 0) {
gl.glDisableClientState(GL.GL_NORMAL_ARRAY); // Disable Normals
}
} |