在:C++\Win32 应用程序(不是全屏)\DX9
如何在快速调整大小期间重绘窗口内容并且足够好?调整大小 == 用户拖动窗口边框。
不同的方法:
- 在每个 WM_SIZE\WM_PAINT 上重置设备。足够的分辨率,但黑色条纹出现在快速高档。
- 在 WM_EXITSIZEMOVE 上重置设备并在 WM_ENTERSIZEMOVE 上暂停渲染。最佳速度,但在调整大小时会出现丑陋的〜黑色条纹。
- 在这种情况下无法找到如何使用 dx9 的交换链
- 在调整大小期间保持渲染和交换缓冲区;在 WM_EXITSIZEMOVE 上重置。正是 2010 SDK 的官方演示中发生的情况。看起来很快并且可以接受。但是 [突然] 在慢速计算机上再次出现黑色条纹。薄而稀有,但真实。实际上,这很奇怪
Present(,,,)
:乍一看,同步渲染和每个 WM_SIZE 和\或 WM_PAINT 都排除了这一点。而在第二个。也许我不明白一些重要的事情?
所以,当最后一种方法失败时,我决定在这里问。是否有可能以某种方式使 dx9 表面牢固地粘在窗口边框上。没有黑色条纹。更喜欢降低缩放速度,但以某种方式与 DX 同步。