How do I use glVertexPointer?
How do I use glVertexPointer?
The vertex pointer will have to point to your home made vertex array. This array can be a 2D array (x elements long, 3 elements wide) to contain the vertices. Next you tell OpenGL to use that specific array, and then you draw the array.
Important is that you enable the right clientstates first.
You'll also need an INDEX ARRAY. This array will contain the order in which the indexes of the vertex array are given to the card. I haven't figured out a way NOT to use this though, so I keep on defining an Index array every time.
Example code:
I use this as reference when I tried to figure out how to use the vertex array: http://www.3dlabs.com/support/developer/GLmanpages/Code :glEnableClientState(GL_VERTEX_ARRAY); //enable vertex array glEnableClientState(GL_NORMAL_ARRAY); //enable normal array glEnableClientState(GL_TEXTURE_COORD_ARRAY); //enable texcoord array glVertexPointer( 3, GL_FLOAT, 0, &vertexA[start]); //give vertex array to OGL glTexCoordPointer( 2, GL_FLOAT, 0, &texcoordA[start]); //same with texcoord array glNormalPointer( GL_FLOAT, 0, &normalA[start]); //and normal array glDrawElements( GL_QUADS, len, GL_UNSIGNED_INT, indexA); //draw the whole set in one go glDisableClientState(GL_VERTEX_ARRAY); //disable the client states again glDisableClientState(GL_NORMAL_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY);
Is this faster than just traversing the array by your self and using glVertex?
Depending on what you do, it can be anywherefrom a little to a lot faster.