有时需要很长时间插入条件打印并glGetError()
使用一种二进制搜索形式检查以缩小范围,其中第一个函数调用是 OpenGL 首先报告错误。
我认为如果有一种方法可以构建一个宏,我可以将所有可能失败的 GL 调用包装起来,然后有条件地glGetError
立即调用,那将是一件很酷的事情。在为特殊目标编译时,我可以让它glGetError
以非常高的粒度进行检查,而为典型的发布或调试进行编译时,这不会被启用(我只会每帧检查一次)。
这样做有意义吗?稍微搜索一下,我发现一些人建议glGetError
在每次非绘制 gl-call 之后调用,这与我所描述的基本相同。
那么在这种情况下,我可以做些什么聪明的事情(上下文:我正在使用 GLEW)来简化以这种方式检测我的 gl 调用的过程?在这一点上,将我的代码转换为围绕每个 OpenGL 函数调用包装一个宏将是大量的工作。如果我可以做一些聪明的事情,并且无需手动确定要检测的代码部分(尽管这也有潜在的优势......但不是真的),我真的不关心性能,那将是很棒的在我调试错误源时)。