我刚刚从GLFW 2.7升级到3.0.1。摆弄它使其工作后,在调用glGenVertexArrays()时遇到了访问冲突。

Graphics::Graphics():camera(*this){
    glfwInit();

    glfwWindowHint( GLFW_CONTEXT_VERSION_MAJOR, 3 );
    glfwWindowHint( GLFW_CONTEXT_VERSION_MINOR, 2 );
    glfwWindowHint( GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE );

    glfwWindowHint( GLFW_RESIZABLE, GL_FALSE );
    window = glfwCreateWindow(800, 600, "OpenGL Window", 0, 0);

    // Initialize GLEW
    glewExperimental = GL_TRUE;
    glewInit();

    // Create Vertex Array Object
    glGenVertexArrays(1, &vao);
    glBindVertexArray(vao);
}

我不确定是什么问题,就像以前那样,尽管代码(gen和bind调用除外)是在初始化函数中而不是在构造函数中(因为GLFW现在具有多窗口支持,尽管我只打算使用一个) 。

最佳答案

好吧,我在这里意识到了这个问题。在GLFW 3中,您需要使上下文为最新。这是通过glfwMakeContextCurrent()完成的。

关于c++ - 将GLFW 2升级到3,导致顶点阵列生成崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17303224/

10-10 21:34