重复使用WM_PAINT上的前一个后台缓冲区

时间:2014-10-14 04:04:43

标签: winapi opengl

如果在接收WM_PAINT时没有更改最后一帧的内容,是否可以简单地指示操作系统使用旧的后台缓冲区重绘窗口,而不是将整个场景重新绘制到新的后台缓冲区并交换它?

1 个答案:

答案 0 :(得分:2)

没有。没有这样的" backbuffer"。当绘图发生时,您不知道其他窗口可能覆盖哪些区域。裁剪区域不是一个真正的好指标。

您唯一知道的是需要重新绘制这些区域。每个窗口都关心自己的客户区域。如果你想要缓冲某些东西,你必须自己做。

原因很简单:想象一下,你有数百个窗户。当只有顶部的视图可见时,为每个窗口保持缓冲区是低效的。因此,Windows制造商决定不存储任何Windows内容,只需通知顶部的窗口重绘自己。

行。由于我们有一个DWM(动态窗口管理器),事情发生了很大变化。但原则仍然是:你有责任画画。如果你想要缓冲某些东西,你必须自己做。