2016-01-24 63 views

回答

2

使用WGL,只能在創建上下文時爲窗口設置一次像素格式,並且一旦客戶端驅動程序加載完成,只能調用wglChoosePixelFormatARB()函數,並且客戶端驅動程序僅在您擁有OpenGL上下文。是的,這是循環的。因此,這意味着你必須做到以下幾點:

  1. 與OpenGL上下文創建的窗口。

  2. 獲取wglChoosePixelFormatARB()的函數指針。

  3. 銷燬窗口,並創建一個具有所需像素格式的新窗口。

如果你有任何意義的,你會使用SDL或GLFW爲你做這個,因爲它只是一堆你寫管道的,有一個在學習如何做沒有價值它,你可能想要完成一些真正的工作。 SDL/GLFW /等。 99%的OpenGL遊戲是如何開發出來的。

如果您確實想自己做這件事並且陷入困境,請查看SDL或GLFW源代碼以瞭解它們是如何實現的。

  • 在SDL中,src/video/windows/SDL_windowsopengl.c文件有一個功能WIN_GL_ChoosePixelFormatARB()這你想要做什麼。另請注意功能WIN_GL_LoadLibrary()

  • 在GLFW中,src/win32_window.c文件有一個功能_glfwPlatformCreateWindow(),它可以做你想做的。

P.S. GLEW在覈心環境和現代卡片方面有點不合適,請小心。那裏還有其他的GL裝載機。

+0

你可以推薦比glew更好的「gl功能裝載機」嗎? – Pilpel

+0

@Pilpel:不幸的是,我只使用過兩次:我使用了GLEW,並且我自己翻譯了(通過解析OpenGL API規範)。 GLEW的問題在於,它不適用於核心上下文,它應該是一個簡單的修復,但它們只是沒有完成。請參閱:https://www.opengl.org/wiki/OpenGL_Loading_Library –

+0

「如果您對您有任何意義,您將使用SDL或GLFW爲您完成此操作,因爲這只是一大堆管道工作,您必須寫「 - 但你自己寫了大量的opengl函數指針代碼!? – Pilpel

相關問題