执行以下代码
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 Error 502。
然而 glDrawArrays 仍然绘制三角形。
通过检查文档http://www.opengl.org/sdk/docs/man/xhtml/glBindBuffer.xml glBindBuffer 可以返回 GL_INVALID_ENUM 或 GL_INVALID_VALUE ...但是没有关于 glBindBuffer 给出 GL_INVALID_OPERATION 的信息
这里发生了什么?