全屏上的 d3d11 alt-tab 给出了奇怪的结果

Posted

技术标签:

【中文标题】全屏上的 d3d11 alt-tab 给出了奇怪的结果【英文标题】:d3d11 alt-tab on fullscreen gives strange result 【发布时间】:2014-02-21 21:09:23 【问题描述】:

首先,经过 4 小时的调试,我的代码没有问题。但我很好奇为什么我遇到了问题。

我使用 d3d11 渲染创建了全屏窗口。当我尝试 alt-tab 窗口并且 在我的循环中没有 Present() 时出现问题(我只是在实现渲染功能之前发现了这个问题)。在这种情况下,在我屏幕上最小化窗口红色和蓝色通道后交换(是的,字面意思)。

我花了很长时间才找到,因为我怀疑我的交换链或窗口本身 (sdl)。出于教育目的,您能帮我找出这个错误的原因吗?

【问题讨论】:

【参考方案1】:

这通常是由于 RGBA 交换链的图形驱动程序错误造成的。您可以尝试更新驱动程序(运行 Windows 更新)。但是为了提高兼容性,您可以将交换链表面格式更改为 BGRA(特别是 B8G8R8A8_UNORM)。只要您只是进行正常渲染(而不是像 UpdateSubresource 那样直接对后台缓冲区进行任何花哨的操作),您应该能够将其他所有内容保持原样并且它会正确渲染。

【讨论】:

以上是关于全屏上的 d3d11 alt-tab 给出了奇怪的结果的主要内容,如果未能解决你的问题,请参考以下文章

怎么把主屏内容放到扩展屏上

Ag-grid 在全屏上以 PRINT 格式不响应

消除在 Java GUI 中使用 Alt-F4 和 Alt-TAB 的可能性 [重复]

SQL REPLACE 上的奇怪输出

OpenGL独占模式全屏

win32(全屏)无边框窗口重叠任务栏