1

glPrimitiveRestartIndex 的代码编译和链接有问题,但是当我运行它时,它会出现段错误:

glPrimitiveRestartIndex(0xffff);

glEnable(GL_PRIMITIVE_RESTART)当我用andinvalid enumerant投票时给我glGetErrorglGetErrorString

我发现了一个类似的问题,它表明 glew 可能没有正确初始化。

在执行此操作之前,我正在初始化 glew ,并且我还包括glew.hbefore gl.h

还有,glewinfo | grep Restart给我

glPrimitiveRestartIndex:                                     OK
glPrimitiveRestartIndexNV:                                   OK
glPrimitiveRestartNV:                                        OK

那么它不应该在我的系统上工作吗?有什么问题?

我的代码相当大,所以我不能发布所有内容,以下是我认为相关的内容:

if (GLEW_OK != glewInit()){
    // GLEW failed!
    std::cout << "Failed to initialize glew!\n";
    exit(1);
}
glEnable(GL_PRIMITIVE_RESTART); //invalid enumerator
glPrimitiveRestartIndex(0xffff); //segfault!
4

1 回答 1

1
glPrimitiveRestartIndex

是 OpenGL 3.1 + 你应该检查你的驱动程序是否支持它,像这样检查它:

if(GLEW_VERSION_3_1) {
  //we are running on 3.1 +
} else {
  //some version lower than 3.1
}
于 2012-11-19T17:03:15.267 回答