在我的軟件中,我生成一個虛擬窗口,以查詢Windows各種像素格式,然後銷燬該窗口,然後在選擇適當的格式後創建一個新窗口。使用glewInit正確初始化GLEW?
初始化第一個窗口後,我使用glewInit()初始化glew以使用wglChoosePixelFormatARB函數。雖然在銷燬虛擬窗口後,擴展繼續運行,但我知道這在技術上並不「正確」,理論上兩個窗口可能有兩組不同的函數指針。因此,我想在創建第二個窗口後第二次初始化glew。
當我這樣做,我從普通功能出現錯誤後,像這樣的:
GLint viewport[4];
::glGetIntegerv(GL_VIEWPORT, viewport);
,與glError是1280 - 但奇怪的是,當我檢查視,似乎包含正確的值(I查看glGetError()來查看前面的命令是否導致錯誤)。所以,我的問題是這樣的:在Windows中需要兩個狀態OpenGL初始化(創建虛擬窗口,初始化擴展,使用擴展,破壞虛擬窗口,創建實際窗口),你如何初始化第二個新窗口是當前上下文的時間?
我做到了,是的。它絕對活躍。我認爲你自己正確地獲取擴展。在任何情況下查看我需要在每個窗口中存儲它們的內容(以確定它是正確的)。 GLEW支持glewContextInit,但這看起來也很痛苦。 – Robinson