1. 程式人生 > >對glPushAttrib和glPopAttrib的一點思考

對glPushAttrib和glPopAttrib的一點思考

 先把今天遇到的問題描述下吧,本來有兩個影像圖層,我對第一個圖層設定了裁剪範圍,然後再繪製第二個圖層,此時第二個圖層不顯示,此問題僅出現在NVIDIA顯示卡上,AMD顯示卡正常,讓我鬱悶了好久。

 後來通過glPushAttrib和glPopAttrib解決了此問題,在渲染前呼叫glPushAttrib儲存openGL屬性狀態資訊,然後開始渲染,結束後呼叫glPopAttrib恢復之前的屬性狀態資訊。

 為什麼會這樣?我的理解是在我渲染第一個圖層的時候,openGL第一次儲存了我設定的裁剪範圍,我第二次渲染的時候第一次的裁剪範圍沒有清除,設定也無效,導致我還使用的是上一次的裁剪範圍,使用glPushAttrib儲存我設定裁剪範圍之前的狀態,繪製結束後又呼叫glPopAttrib恢復了之前的狀態。


參考網址:點選開啟連結