Hiram

05-11-2011, 06:46 AM

Hi guys,

I'm trying to get the following data structure to work with glVertexPointer and subsequently glDrawArrays:

struct Vertex

{

float x, y, z, w, nx, ny, nz, tx, ty;

}

typedef std::vector<Vertex> Face;

typedef std::vector<Face> Mesh;

So if I create a cube object, it's Mesh will have 6 vectors, and those 6 vectors will have 4 Vertex's each.

If I make the following calls, I get a single face the way I'd expect:

glVertexPointer(4, GL_FLOAT, sizeof(Vertex), &mesh[0][0];

glDrawArrays(GL_QUADS, 0, 4);

However subsequent calls to glDrawArrays with different first values don't give me the other faces, instead I get garbage like random polygons to random points in the screen.

I've tried a heap of different values for first, like 1 through to 10, and none of them work. I'm sure the problem is that I don't understand glVertexPointer properly. Any help would be greatly appreciated.

I'm trying to get the following data structure to work with glVertexPointer and subsequently glDrawArrays:

struct Vertex

{

float x, y, z, w, nx, ny, nz, tx, ty;

}

typedef std::vector<Vertex> Face;

typedef std::vector<Face> Mesh;

So if I create a cube object, it's Mesh will have 6 vectors, and those 6 vectors will have 4 Vertex's each.

If I make the following calls, I get a single face the way I'd expect:

glVertexPointer(4, GL_FLOAT, sizeof(Vertex), &mesh[0][0];

glDrawArrays(GL_QUADS, 0, 4);

However subsequent calls to glDrawArrays with different first values don't give me the other faces, instead I get garbage like random polygons to random points in the screen.

I've tried a heap of different values for first, like 1 through to 10, and none of them work. I'm sure the problem is that I don't understand glVertexPointer properly. Any help would be greatly appreciated.