Skip to main content
gamedev.net
🔒 Locked

DrawElements

Started by BGCJR 4 replies 500+ views
Original Post
BGCJR
BGCJR
How do i pass a vector array to glVertexPointer and Drawelements? Bobby
Game Core
skremon
skremon
Like this:
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer( 3, GL_FLOAT, 0, vectorArray );

where vectorArray is the pointer to your vector Array.

If by vector Array you mean stl vector:

vector pCoords; // List of vertices

Then give the pointer to the first element of the array like this:
glVertexPointer( 3, GL_FLOAT, 0, &pCoords[0] );

after that you can use glDrawElements
Assign all the indices of triagles in one array pointer pIndices.

unsigned int *pIndices;

glDrawElements(GL_TRIANGLES, numberOfIndices, GL_UNSIGNED_INT, pIndices);

See the Red Book for details...
(Remon) M. Sazzad Karim
Myopic Rhino
Myopic Rhino
quote:
Original post by skremon
If by vector Array you mean stl vector:

vector<CVector3> pCoords; // List of vertices

Then give the pointer to the first element of the array like this:
glVertexPointer( 3, GL_FLOAT, 0, &pCoords[0] );

Note that this isn''t completely safe. Although most STL vector implementations store the data in contiguous memory, the C++ spec does not (yet) require this.

BGCJR
BGCJR
Thanks Both, I''ll be testing it. I already added it my model editor and VBO , 44000tris in 4 opengl windows at one time runs pretty well.
i''m using stl vector to save memory leaks. So, it seems fine right now. but, if it does split up, i can save by reserving data?

Bobby
Game Core
skremon
skremon
quote:
Note that this isn''t completely safe. Although most STL vector implementations store the data in contiguous memory, the C++ spec does not (yet) require this.



I''m quite sure that Visual C++ compiler stores stl vector in contiguous memory. Can you tell me of any other compilers that doesn''t do it?
BTW First i used STL vectors but eventually i used pointers (copied them from vector to memory) for vertex arrays.
(Remon) M. Sazzad Karim
BGCJR
BGCJR
you''ll need malloc and transfer data through that if you need contigous memory.
Game Core

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.