我正在开发一个适用于多显示器的SlimDX应用程序。应用程序将占用选定的显示,它的选择是通过命令行输入的,如int。然后我使用System.Windows.Forms.Screen.AllScreens[selection]来了解绑定,并在屏幕上“全屏”显示我的应用程序。
现在,为了优化性能,我需要选择哪个gpu适配器来初始化Direct3D设备。如何找出为所选显示器供电的是哪个gpu适配器?
由于每个gpu适配器可能连接了一到两个显示器,所以我不能使用显示编号。
我正在利用Direct3D10。我不介意用Direct3D9解决方案。
更糟糕的情况是让用户通过命令行选择显示和适配器,但我更喜欢愚蠢的验证方法。
谢谢
发布于 2011-03-02 05:33:57
D3D10和D3D11都使用DXGI来管理这样的细节。您创建的Factory界面允许您获取系统上安装的适配器的列表。每个适配器可以有一个或多个输出,您可以从adapter接口枚举这些输出。
这将为您提供输出接口的列表,这些接口具有Description属性,其中包含输出边界的矩形以及运行输出的监视器的IntPtr句柄。
我不认为Winforms Screen类公开底层本机指针,这就是为什么我们提供SlimDX.Windows.DisplayMonitor类来替代Screen类的原因。您可以使用它来确定显示器的特定细节,并根据您的需要选择正确的适配器。
https://stackoverflow.com/questions/5100499
复制相似问题