OpenGL:glGetError() 没有重置它的标志?

Posted

技术标签:

【中文标题】OpenGL:glGetError() 没有重置它的标志?【英文标题】:OpenGL: glGetError() not ressetting its flag? 【发布时间】:2020-04-29 23:15:09 【问题描述】:

我正在尝试使用 glGetError() 调试我的代码,但我注意到每次调用它时都会抛出错误 1282。最终我连续调用了 2 行 glGetError() 并且都给出了错误 1282。

它不应该在第一次调用后重置错误标志,导致第二次返回 0 吗?或者这个功能的工作方式与我想象的不同?

【问题讨论】:

【参考方案1】:

泵it '直到它变干:

为了允许分布式实现,可能有几个错误标志。如果任何单个错误标志记录了错误,则返回该标志的值,并在调用 glGetError 时将该标志重置为 GL_NO_ERROR。如果多个标志记录了错误,则 glGetError 返回并清除任意错误标志值。因此,如果要重置所有错误标志,glGetError 应该始终在循环中调用,直到它返回 GL_NO_ERROR

【讨论】:

以上是关于OpenGL:glGetError() 没有重置它的标志?的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL glGetError 1281 错误值

glCheckFramebufferStatus 返回 0 并且 glGetError 中没有错误 [关闭]

来自 glGetError() 的 INVALID_ENUM 错误。 glGetError 与 glu、glew、glfw?

我的OpenGL学习进阶之旅错误处理

我的OpenGL学习进阶之旅错误处理

OpenGL状态重置