2017-06-02 160 views
0

我拨打glGenVertexArrays()时出现分段错误。我尝试设置glewExperimental = GL_TRUE,但我仍然收到错误消息。这是我的小代码。创建VertexArray时出现分段错误

#include <GL/glew.h> 
#include <GL/gl.h> 

#include <iostream> 

int main(int argv, char **argc) 
{  

    glewExperimental = GL_TRUE; 
    glewInit(); 

    GLuint vao = 0; 
    glGenVertexArrays(1, &vao); 
    glBindVertexArray(vao); 

    std::cout << "WHY?" << std::endl; 

    return 0; 
} 
+1

尝试创建一个gl-context,并在使用glew或gl-command之前将其设置为当前值。 – Ripi2

回答

3

你从来没有验证glewInit()回报GLEW_OK(它不会因为你没有一个当前GL上下文),所以glGenVertexArrays()glBindVertexArray()都还是空的函数指针。

Calling NULL is bad.

您还应该检查当前GL上下文使用它们之前支持VAOs,无论是通过GL版本检查(if(GLEW_VERSION_3_0)...)或延长(if(GLEW_ARB_vertex_array_object)...)。

就创建GL环境并使其最新而言,我建议使用SDL2GLFW3

+0

哦,是的...... GL语境......现在我觉得有点愚蠢。 – vktrbhm