我正在使用QT 4.8.4并在QGraphicsScene背景上绘制OpenGL。问题在于我得到了从glGetError()返回的无效信息。我的代码片段:
while (GLenum err = glGetError() != GL_NO_ERROR) {
std::cerr << err;
}
在应用程序输出中,我得到了很多带有数字1的行。
从文档中,我看到可能的值包括:
GL_NO_ERROR、GL_INVALID_ENUM、GL_INVALID_VALUE、GL_INVALID_OPERATION、GL_INVALID_FRAMEBUFFER_OPERATION、GL_OUT_OF_MEMORY、GL_STACK_UNDERFLOW、GL_STACK_OVERFLOW,它们分别定义为0、0x0500、0x0501、0x0502、0x0503、0x0504、0x0505、0x0506。
为什么我得到的是数字1而不是正确的错误代码?
当我使用QT封装本地OpenGL绘图代码时,这种情况开始发生。
painter->beginNativePainting();
...
painter->endNativePainting();
PS:多个1是来自多个绘制调用而不是循环。