2013-06-25 49 views
2

我剛剛從GLFW 2.7升級到3.0.1。在擺弄它以使其工作之後,我在glGenVertexArrays()的調用中遇到了訪問衝突。將GLFW 2升級到3導致頂點陣列生成崩潰

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); 
} 

我不確定什麼是錯的,因爲這個工作之前,雖然代碼(除根和綁定電話)是一個初始化函數,而不是在構造函數(如GLFW現擁有多窗口的支持,雖然我只打算使用一個)。

+0

我在猜測這裏發生了什麼,所以請耐心等待。您是否曾嘗試將'GLFW_CONTEXT_VERSION_MINOR'設置爲'0'?另外,確保'window'創建沒有任何問題? –

回答

4

好吧我在這裏意識到了這個問題。在GLFW 3中,您需要使上下文保持最新狀態。這是用glfwMakeContextCurrent()完成的。