使用glPrimitiveRestartIndex进行Segfault

时间:2012-11-19 09:55:08

标签: opengl glew

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

glPrimitiveRestartIndex(0xffff);
当我使用glEnable(GL_PRIMITIVE_RESTART)invalid enumerant

进行投票时,

glGetError给了我glGetErrorString

我找到了similar question,它表明glew可能无法正确初始化。

在我这样做之前,我正在初始化glew,而且我还在glew.h之前加入了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!

1 个答案:

答案 0 :(得分:1)

glPrimitiveRestartIndex

是OpenGL 3.1 + 您应该检查以查看您的驱动程序是否支持它,方法如下:

if(GLEW_VERSION_3_1) {
  //we are running on 3.1 +
} else {
  //some version lower than 3.1
}