我刚刚从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/