glGetError

来源:互联网 发布:华为手机网络助手在哪? 编辑:程序博客网 时间:2024/05/16 16:22
如果函数参数不符或者不符合当前上下文设置的状态,则会导致 OpenGL Error。已 error code 来表示。绝大多数情况下 OpenGL functions 产生 errors,则不会生效。少数有效。


OpenGL Error 存储在一个队列中,直到该错误被处理。因此,如果你不定期的检测错误,你将不会知道某个函数某个函数的调用触发了错误。因此,错误检测应该定期检测,确保知道错误的详细信息。


获取队列中下一个 OpenGL Error,并从队列中移除。如果返回 GL_NO_ERROR 则该队列为空。
GLenum glGetError()​
若获取所有的 OpenGL Error 
for(GLenum err; (err = glGetError()) != GL_NO_ERROR;)
{
 //Process/log the error.
}

所有的返回值有:
GL_NO_ERROR :当前无错误值
GL_INVALID_ENUM :仅当使用非法枚举参数时,如果使用该参数有指定环境,则返回 GL_INVALID_OPERATION 
GL_INVALID_VALUE :仅当使用非法值参数时,如果使用该参数有指定环境,则返回 GL_INVALID_OPERATION 
GL_INVALID_OPERATION :命令的状态集合对于指定的参数非法。
GL_STACK_OVERFLOW :压栈操作超出堆栈大小。
GL_STACK_UNDERFLOW :出栈操作达到堆栈底部。
GL_OUT_OF_MEMORY :不能分配足够内存时。
GL_INVALID_FRAMEBUFFER_OPERATION :当操作未准备好的真缓存时。
GL_CONTEXT_LOST :由于显卡重置导致 OpenGL context 丢失。
0 0
原创粉丝点击