我正在开发一个需要两个全屏Direct3D显示的程序。根据{{3}},我应该在窗口模式下创建交换链,然后切换到全屏模式。虽然这在Windows 8上工作正常(目前我只是使用Alt-Enter进行切换),但它在Windows 7上不起作用。在Windows 7上,我遇到类似于documentation的问题,其中屏幕有最近被切换到全屏工作正常,但另一个屏幕,以前在全屏幕上工作得很好,变黑(并保持相同的全屏分辨率),直到我把它全屏幕。
你可以在this issue找到我粗糙的原型。
显然过去曾有this tag ......但我似乎遇到的问题略有不同。
此外,我已尝试禁用DWM合成,如链接问题中建议的那样,但是没有做任何事情来解决问题..
如果我能提供有关此问题的更多信息,请告诉我...我猜最糟糕的情况是我只是依靠DX9,这显然适用于多显示器全屏设置......
答案 0 :(得分:0)
我想我可能已经找出了问题的原因:可能是因为我正在为同一个适配器创建多个ID3D11Device。
我的代码过于复杂,因为我正在遵循this article中引入的技术,当我真的不需要任何东西而不是所有窗口和渲染的单个线程时。在为每个渲染目标共享相同的ID3D10Device(每个输出一个渲染目标,每个适配器一个ID3D10Device)之后,我已成功获得DXG的DXGI渲染两个全屏显示,如rough memory-leaking proof of concept所示。
由于这是我第一次使用这项技术,我使用这篇文章来帮助我完成这个过程:Display Different images per monitor directX 10