次のコードを実行する
int object::draw(){
glBindBuffer(GL_ARRAY_BUFFER, vbobuffer);
if(myglError("glBindBuffer in object.draw")){
//return 0;
}
glDrawArrays(GL_TRIANGLES, 0, buffer_size);
if(myglError("glDrawArrays in object.draw")){
return 0;
}
return 1;
}
どこ
inline int myglError(const char* location) {
GLenum error = GL_NO_ERROR;
error = glGetError();
if (GL_NO_ERROR != error) {
printf("GL Error %x encountered in %s.\n", error, location);
//exit(-1);
return 1;
}
return 0;
}
object.draw の glBindBuffer で GL エラー 502 が発生しました。
ただし、glDrawArrays はまだ三角形を描画します。
ドキュメントhttp://www.opengl.org/sdk/docs/man/xhtml/glBindBuffer.xmlをチェックすることにより、 glBindBufferはGL_INVALID_ENUMまたはGL_INVALID_VALUEを返すことができます...しかし、GL_INVALID_OPERATIONを与えるglBindBufferに関する情報はありません
ここで何が起こっているのですか?