0
GLuint vBuffer;
glGenBuffers(1, &vBuffer);
glBindBuffer(GL_ARRAY_BUFFER, vBuffer);
int totalSize = sizeof(tempVertexList);
glBufferData(GL_ARRAY_BUFFER, totalSize, tempVertexList, GL_STREAM_DRAW);
glDrawArrays(GL_TRIANGLE_STRIP, 0, vertexCount);

这段代码在涉及 glDrawArrays 时会崩溃,有什么明显的原因吗?vertexCount 为 4 并且 tempVertexList 填充了 4 个 Vertex 结构,定义为

typedef struct
{
    float Position[3];
    float Colour[4];
} Vertex;
4

1 回答 1

0
glVertexAttribPointer(positionSlot, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), 0);
glVertexAttribPointer(colorSlot, 4, GL_FLOAT, GL_FALSE, sizeof(Vertex), (GLvoid*)(sizeof(float)*3));

每次更改 GL_ARRAY_BUFFER 都需要调用,不知道才发现 :)

于 2013-03-11T15:18:26.233 回答