【问题标题】:Segmentation fault when calling glGenVertexArrays()?调用 glGenVertexArrays() 时出现分段错误?
【发布时间】:2018-05-15 20:54:46
【问题描述】:

当我调用glGenVertexArrays() 时遇到分段错误:

#include <GL/glew.h>

int main()
{
    // Initialize GLEW
    glewExperimental = GL_TRUE;
    glewInit();
    GLuint vao;
    glGenVertexArrays(1, &vao);
}

此类问题的答案建议将glewExperimental 设置为true,但这已在我的代码中设置。

【问题讨论】:

标签: c++ opengl glew


【解决方案1】:

在验证 glewInit() 返回 GLEW_OK ask GLEW 如果当前 GL 上下文支持 VAO 之后,然后尝试通过以下方式使用它们:

  • 核心版本检查 (VAOs have been a core feature since GL 3.0):

    if(GLEW_VERSION_3_0)
    {
        // do VAO stuff
    }
    
  • 或者通过检查 ARB_vertex_array_object 扩展支持:

    if(GLEW_ARB_vertex_array_object)
    {
        // do VAO stuff
    }
    

否则,如果 glewInit() 失败或不支持 VAO,则 GLEW 声明的函数指针(如 glGenVertexArrays)在您尝试调用它们时将保持 NULL 和段错误。

【讨论】:

    猜你喜欢
    • 2014-08-14
    • 1970-01-01
    • 2018-03-17
    • 2017-08-05
    • 2015-10-03
    • 2019-04-20
    • 2015-10-02
    • 2013-06-12
    相关资源
    最近更新 更多