VBOとレンダリングバッファの両方のサンプルコード(O'Reillyの本)で、バインディングが複数回行われていることに気づきました。この背後にある理由は何ですか?たとえば、OpenGLルーチンの先頭に次のように表示できます。
glGenBuffers(1, &m_vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, m_vertexBuffer);
そして、描画を行う前に、もう一度行います。
glBindBuffer(GL_ARRAY_BUFFER, m_vertexBuffer);
glVertexPointer(3, GL_FLOAT, sizeof(Vertex), 0);
//on to the drawing routine
これらのいずれかを削除すると、図面が表示されなくなりますが、なぜ2回バインドする必要があるのでしょうか。
最初にこれを行う別の例:
// Create & bind the color buffer so that the caller can allocate its space.
glGenRenderbuffersOES(1, &m_colorRenderbuffer);
glBindRenderbufferOES(GL_RENDERBUFFER_OES, m_colorRenderbuffer);
次に、頂点などを作成した後、後でもう一度実行します。
// Bind the color buffer for rendering.
glBindRenderbufferOES(GL_RENDERBUFFER_OES, m_colorRenderbuffer);