2012-02-09 12 views
1

私はこのような私のコードを動作するようにしたいと思い:glBindBufferは以前のgl * Pointer呼び出しを無効にしますか?

glVertexPointer(3, GL_FLOAT, sizeof(Vertex), (GLvoid*)offsetof(Vertex, Position)); 
glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(Vertex), (GLvoid*)offsetof(Vertex, Color)); 

for (/* each buffer */) 
{ 
    glBindBuffer(GL_VERTEX_ARRAY, buffer); 
    glDrawArrays(GL_TRIANGLE_STRIP, 0, buffer_size); 
} 

うこの仕事を?

または私は各バッファのための*のポインタをGLを呼び出す必要がありますか?

答えて

1

あなたは電話をglXYZPointer呼び出す前にglBindBufferを呼び出す必要があります。

OpenGLは、ステートマシンです。 glVertexPointer(またはその他のgl..Pointer)を呼び出すと、頂点ポインタが現在バインドされているバッファに設定されます。 glBindBufferの後にポインタ呼び出しは何もしません(次のポインタ呼び出しに影響を与えます)。

関連する問題