Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ opengl glRenderMode未更改模式_C++_Opengl - Fatal编程技术网

C++ opengl glRenderMode未更改模式

C++ opengl glRenderMode未更改模式,c++,opengl,C++,Opengl,我正在尝试使用glRenderMode更改选择的渲染模式,下面是我用来执行此操作的代码 glSelectBuffer(size, buffer); int before = glRenderMode(GL_SELECT); std::cout << "before:" << before << std::endl; GLint mode; glGetIntegerv(GL_RENDER_MODE, &mode);i st

我正在尝试使用
glRenderMode
更改选择的渲染模式,下面是我用来执行此操作的代码

 glSelectBuffer(size, buffer);
 int before = glRenderMode(GL_SELECT);
 std::cout << "before:" << before << std::endl;
 GLint mode;
 glGetIntegerv(GL_RENDER_MODE, &mode);i
 std::cout << "mode:" << mode << std::endl;
 std::cout << "gl_select:" << GL_SELECT << std::endl;
 std::cout << "gl_render:" << GL_RENDER << std::endl;
这告诉我模式没有改变,因为默认情况下它处于
GL\u RENDER

编辑:根据@Axalo注释,更改代码以验证它在glRenderMode之前返回0

我还注意到,在上述代码块返回
0
之前运行
glGetError()

但是下面的代码将再次给我
1282
错误代码

glRenderMode(GL_RENDER);
std::cout << glGetError() << std::endl;
glRenderMode(GL_RENDER);

std::cout
glGetError()
返回什么?
glGetError()
返回
1282
确保在
glRenderMode
之前返回0,之后返回1282。有关详细信息,请参阅。如果在渲染模式为GL\U SELECT时调用glSelectBuffer,则会生成GL\U INVALID\U操作,或者,如果在至少调用一次glSelectBuffer之前使用参数GL\U SELECT调用glRenderMode。@Jean SimonBrochu您是否清楚,对于不再支持拾取的卡/驱动程序/配置文件,是否也会抛出
GL\U INVALID\U操作
glRenderMode(GL_RENDER);
std::cout << glGetError() << std::endl;