指令的返回值是无效的,因此返回值不能用返回值来判断。为了尽快发现问题,需要添加封装以监视指令呼叫是否失败。
原则
当呼叫中发生错误时,错误的ID将存储在一个中。可以通过此值
glGetError();
获得。
完成
宏可以将呼叫检查接口封装出GL指令错误。实施如下:
//.h void CheckGLError(const char* file,int line);
然后实现此检测功能:
//.cpp void CheckGLError(const char* file,int line) { GLenum error = glGetError(); if(error != GL_NO_ERROR) { switch (error) { case GL_INVALID_ENUM: printf("GL Error: GL_INVALID_ENUM %s : %d \n",file,line); break; case GL_INVALID_VALUE: printf("GL Error: GL_INVALID_VALUE %s : %d \n",file,line); break; case