GL提供了glGetError接口用于获取gl状态机的错误状态,GL调试主要就依赖这个接口.
- 封装gl api
每个gl api的调用都检查状态,错误立刻抛出异常(debug环境下立刻暴露,release则略过).
举例封装glGenFramebuffers
void CxGenFramebuffers(GLsizei n, GLuint* framebuffers) {
glGenFramebuffers(n, framebuffers);
GLenum err = glGetError();
if (err != GL_NO_ERROR) {
printf("GL:file %s line %i errno %d\n", __FILE__, __LINE__, err);
abort(); //
}
}
可以利用模板函数做检查的事情 参考这个链接的做法.
用模板检查函数返回值 地址 : https://www.jianshu.com/p/c83484a1bbb7
网友评论