glGetError()返回1

Hea*_*ght 7 c++ opengl qt

我正在使用QT 4.8.4并在QGraphicsScene背景上绘制OpenGL.问题是我从glGetError()得到无效的返回.我的代码片段:

while (GLenum err = glGetError() != GL_NO_ERROR) {
    std::cerr << err;        
}
Run Code Online (Sandbox Code Playgroud)

在应用程序输出上,我得到很多第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();
Run Code Online (Sandbox Code Playgroud)

PS:多个1是来自多个绘制调用而不是来自循环.

gen*_*ult 6

试试这个:

GLenum err;
while ( ( err = glGetError() ) != GL_NO_ERROR) {
    std::cerr << err;        
}
Run Code Online (Sandbox Code Playgroud)

!=之前得到了评估=.