如何在最小化后恢复 OpenGL 缓冲区



假设我创建了一个使用 SDL + OpenGL 显示图形的应用程序。场景不是动态的,所以我偶尔会绘制和交换缓冲区。

我观察到,在最小化并恢复Windows 7下的窗口后,显示的内容被破坏并显示随机内容。有什么方法可以在不重复上次渲染的情况下恢复它?

我使用的是 Windows 7 专业 SP1 和英特尔 G45/G43 高速芯片组。

您可以将其复制到纹理(使用 glCopyTexSubImage2D ),然后在需要显示内容时渲染该纹理。或者,您可以通过 FBO 首先渲染为纹理。

但是没有自动恢复图像数据的方法。实际上,在恢复显示时重新渲染显示器会更容易。如果窗口与显示重叠,您可能会遇到同样的问题。

最新更新