Hi
When I use VBOs with glDrawArrays() it works fine. However, when I use glDrawElements() instead I keep getting the following exception:
element vertex_buffer_object must be disabled to call this method
at the glDrawElements() call.
Does anyone have a solution to this highly confusing aspect of VBOs?
PS. I am using JOGL and don't know if the problem arises due to the versions of glIndexPointer() and glDrawElements() called.
Thanks
Graham
Code :if (mIsUsingVertexIndices) { IndexTriMesh3D triMesh = (IndexTriMesh3D)mGeometricObject; int numberTriangles = triMesh.numberTriangles(); int numberIndices = 3 * numberTriangles; glv.glEnableClientState(GL2.GL_VERTEX_ARRAY); // enable vertex arrays glv.glEnableClientState(GL2.GL_ELEMENT_ARRAY_BUFFER); // enable vertex indices glv.glEnableClientState(GL2.GL_COLOR_ARRAY); // enable colour arrays glv.glBindBuffer(GL2.GL_ARRAY_BUFFER,mVBO); glv.glVertexPointer(3, GL.GL_FLOAT, 0, 0); // set the vertex pointer glv.glBindBuffer(GL2.GL_ARRAY_BUFFER,mVBOColours); glv.glColorPointer(3, GL.GL_FLOAT, 0, 0); glv.glIndexPointer(GL2.GL_UNSIGNED_INT, 0, mVertexIndices); glv.glDrawElements(GL2.GL_TRIANGLES, numberIndices, GL.GL_UNSIGNED_INT, mVertexIndices); glv.glDisableClientState(GL2.GL_VERTEX_ARRAY); // disable vertex arrays glv.glDisableClientState(GL2.GL_ELEMENT_ARRAY_BUFFER); // disable vertex colour array glv.glDisableClientState(GL2.GL_COLOR_ARRAY); // disable vertex colour array }



