0
假設我製作了一個使用SDL + OpenGL顯示圖形的應用程序。場景不是動態的,所以我偶爾進行緩衝區的繪製和交換。如何在最小化後恢復OpenGL緩衝區?
我觀察到的最小化和Windows 7下帶回一個窗口中顯示的內容之後被破壞並顯示隨機的東西。有什麼方法可以在不重複最後一次渲染的情況下恢復它?
我使用Windows 7 SP1業餘體校與英特爾G45/G43 Express芯片組。
假設我製作了一個使用SDL + OpenGL顯示圖形的應用程序。場景不是動態的,所以我偶爾進行緩衝區的繪製和交換。如何在最小化後恢復OpenGL緩衝區?
我觀察到的最小化和Windows 7下帶回一個窗口中顯示的內容之後被破壞並顯示隨機的東西。有什麼方法可以在不重複最後一次渲染的情況下恢復它?
我使用Windows 7 SP1業餘體校與英特爾G45/G43 Express芯片組。
你可以將它複製到紋理(與glCopyTexSubImage2D
),然後渲染紋理時需要顯示的東西。或者你可以渲染到紋理,通過FBO開始。
但是沒有自動的方法來恢復圖像數據。真的,在恢復顯示時重新顯示它會更容易。如果窗口與顯示屏重疊,則可能會出現同樣的問題。
爲什麼不在任何情況下渲染到紋理,然後只需要使用渲染的紋理畫一個全屏的四邊形? – Robinson
那麼,我知道這可以通過使用中間緩衝區輕鬆解決,但我想知道是否可以不重複渲染**,也不需要複製我應該提到的整個緩衝區**。 很難解釋爲什麼我想要這個。問題被完全解決了,因爲我真正在做的事情太複雜了。 經過一些額外的研究,我現在知道我的期望是不現實的,我要麼做第一個或後一個事情。 –