非常に基本的なOpenGL3.2(コアプロファイル)アプリケーションをまとめようとしています。三角形の頂点位置を含むVBOを作成することになっている次のコードでは、の呼び出しはglVertexAttribPointer
失敗し、OpenGLエラーが発生しますGL_INVALID_OPERATION
。これはどういう意味ですか、どうすれば修正できますか?
GLuint vbo, attribLocation = glGetAttribLocation(...);
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
GLfloat vertices[] = { 0, 1, 0, 1, 0, 0, -1, 0, 0 };
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
glEnableVertexAttribArray(attribLocation);
// At this point, glGetError() returns GL_NO_ERROR.
glVertexAttribPointer(attribLocation, 3, GL_FLOAT, GL_FALSE, 0, 0);
// At this point, glGetError() returns GL_INVALID_OPERATION.