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 に答える