c++ - 我什么时候应该调整 Direct3D 11 后缓冲区的大小以防止其在调整大小期间被拉伸(stretch)?

标签 c++ winapi resize direct3d direct3d11

我创建了一个允许调整窗口大小的 Direct3D 11 应用程序。我正在绘制 2D 内容,并且无论我对窗口做什么,我都希望它保持相同的大小,所以例如从右下角缩小窗口应该隐藏右侧或底部的所有内容,但将左上角的所有内容保留为静止状态。

但是,尽管我正在调整后台缓冲区的大小以响应 WM_SIZE,如 IDXGISwapChain::ResizeBuffers 的文档中所述。 ,我仍然看到窗口内容在调整大小时会拉伸(stretch)或挤压一段时间,然后才会自行纠正。当我将窗口拖动到新大小时,这使得窗口内容的大小看起来会上下波动。

最佳答案

事实证明,在创建交换链时,我留下了我的 DXGI_SWAP_CHAIN_DESC1Scaling字段零初始化,结果是 DXGI_SCALING_STRETCH 。切换至DXGI_SCALING_NONE解决了问题(并减少了调整后台缓冲区大小的频率)。

关于c++ - 我什么时候应该调整 Direct3D 11 后缓冲区的大小以防止其在调整大小期间被拉伸(stretch)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37339050/

相关文章:

c - 来自 Charles Petzold 的纯 C 中的 MsgBoxPrintf(win32 api) 提供中文输出...我做错了什么?

c++ - MFC 中 AddString 的性能缓慢

html - 表格内容根据窗口大小而变化

c++ - 使内存可读、可写和可执行是否会受到任何性能影响?

c++ - 为什么重载运算符 << 有时有效但有时无效

c++ - 如何拥有对常量的引用但能够更改引用指向的内容?

c++ - 进程被第三方应用程序 (Sprint Smartview) 杀死

c++ - 你能推荐具有良好突出显示自定义的文本编辑器(linux)吗?

swift - UIImage从对象c到swift并且图像大小不好

keyboard - 当键盘出现时,Flutter 小部件会调整大小。如何防止这种情况?