我對東芝筆記本電腦上的Intel圖形HD 3000 (OS Win7 x32,lang C ++)有問題。經典的單一上下文OpenGL應用程序可以正常工作,但是在單個App中的多個OpenGL上下文上會產生奇怪的行為:在我的應用程序的舊版本上,英特爾驅動程序根本無法創建第二個渲染上下文。在基于OpenGL的軟件體系結構中進行重大更改后,行為發生了變化現在,我可以創建第二個渲染上下文了,但是在釋放它之后(使用/關閉窗口之后),驅動程序無法創建任何下一個渲染上下文。這已經在多個應用程序上進行了測試,并且始終表現相同。我想通過始終激活第二個上下文來解決這個問題,但是它也無法正常工作(某種程度上渲染上下文在Intel上無效)。為了清楚起見,第二個OpenGL渲染上下文用于“ 打開/保存”對話框(預覽子窗口)。駕駛員信息:Intel(R) HD Graphics 3000OpenGL ver: 3.1.0 - Build 9.17.10.2932現在的問題:難道我做錯了什么?引擎是功能齊全的GL,GLSL,VBO,VAO等,并經過多年測試。怪異的行為僅出現在Intel上。來自nVidia的卡可以正常工作,而ATI / AMD則可以正常工作(存在一些問題,但它們總是與ATI有關,尤其是具有索引的VBO的故障驅動程序,其他一切正常)有沒有更好的初始化/退出OpenGL的方法?如何在不同的渲染上下文之間正確切換?我現在正在使用wglMakeCurrent(hdc,hrc),但可能是我遺漏了一些東西,或者在Intel上有一些解決方法。
2 回答

狐的傳說
TA貢獻1804條經驗 獲得超3個贊
您對WGL的使用對我來說看起來是正確的(包括對wglMakeCurrent的使用),但是我已經有一段時間沒有使用它了,所以我的記憶可能很模糊(回答Q1和Q3)。
然而,是一種更好的方法來初始化的OpenGL:使用加載庫,因為這里詳述。正如Wiki所述,強烈建議您使用加載程序庫,而不要自己嘗試。
我喜歡使用SFML創建OpenGL上下文和窗口,再加上GLEW(僅Windows才需要)來設置OpenGL核心上下文函數。我在glfw上也取得了成功,這非常適合加載OpenGL 3.2+
- 2 回答
- 0 關注
- 1121 瀏覽
添加回答
舉報
0/150
提交
取消