1

我正在开发一个需要两个全屏 Direct3D 显示器的程序。根据文档,我应该在窗口模式下创建交换链,然后切换到全屏模式。虽然这在 Windows 8 上运行良好(目前我只是使用 Alt-Enter 进行切换),但它在 Windows 7 上不起作用。在 Windows 7 上,我遇到了与最近出现的屏幕类似的问题切换到全屏工作正常,但之前在全屏下工作正常的另一个屏幕变黑(并保持相同的全屏分辨率),直到我将其从全屏中取出。

你可以在这个标签上找到我乱七八糟的粗略原型。

显然,过去还有其他专门与 Windows 7 相关的错误……但我似乎遇到了一个略有不同的问题。

另外,我尝试禁用链接问题中建议的 DWM 组合,但这并没有解决问题。

如果我可以提供有关该问题的更多信息,请告诉我...我想最坏的情况是我只是退回到 DX9,这显然适用于多显示器全屏设置...

4

1 回答 1

1

我想我可能已经找到了问题的原因:可能是因为我为同一个适配器创建了多个 ID3D11Device。

我的代码对于我需要的东西来说过于复杂,因为我遵循本文中介绍的技术,而实际上我只需要一个线程来处理所有窗口和渲染。在为每个渲染目标(每个输出一个渲染目标,每个适配器一个 ID3D10Device)共享相同的 ID3D10Device 之后,我已经成功获得 DXGI 和 DX10 渲染两个全屏显示,如我粗略的内存泄漏概念证明所示。

由于这是我第一次使用这种技术,我使用这篇文章来帮助我完成这个过程:Display Different images per monitor directX 10

于 2013-03-16T16:58:19.680 回答