2013-11-01 69 views
3

我已經開始通過C++和GLFW使用OpenGL,但調用glfwCreateWindow(...)並未使用我係統上可用的最新版本的OpenGL(當前爲4.3)創建上下文。 我以前用Java和LWJGL使用過OpenGL 4.3上下文,但是自從切換到GLFW以來,我一直不成功。GLFW無法創建4.3上下文

添加到

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); 
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); 

調用導致glfwCreateWindow(...)返回錯誤代碼,雖然改變了小幅度的版本2工作正常。添加窗口提示以使用核心配置文件並將向前兼容性設置爲true也不起作用。

有沒有人知道它的原因可能是/解決這個問題?

編輯:這是在Windows 7

+0

那麼,在調用'glfwInit(...)'之前,你不應該進行glfw API調用。你想在創建窗口之前設置窗口提示,而不是在初始化庫之前;) –

+0

初始化可能比你的兩行更長一點:opengl 3.2/3.3在這裏解決的問題:http://stackoverflow.com/問題/ 19658745/why-is-my-opengl-version-always-2-1-on-mac-os -x?noredirect = 1#comment29233630_19658745 –

+0

@ AndonM.Coleman對不起,這是一個錯字。我的代碼在提示之前調用它。 –

回答

2

這樣做:

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); // yes, 3 and 2!!! 
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); 
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); 
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); 

而且你可以使用OpenGL 4.x的反正...

爲什麼?

檢查FAQ - 「4.1 - 如何創建OpenGL 3.0+上下文?」

+1

謝謝!雖然查詢GL版本返回3.2,但我仍然可以使用4.3功能(例如計算着色器)。 –