【问题标题】:Find out which display belongs to which adapter?找出哪个显示器属于哪个适配器?
【发布时间】:2011-02-24 04:52:30
【问题描述】:

我正在开发适用于多显示器的 SlimDX 应用程序。应用程序将占据选定的显示,并且它的选择是通过命令行输入的,如 int。然后我使用System.Windows.Forms.Screen.AllScreens[selection] 来了解绑定,并在该显示器上“全屏”显示我的应用程序。

现在,为了优化性能,我需要选择哪个 gpu 适配器来初始化 Direct3D 的设备。如何找出哪个 gpu 适配器正在为选定的显示器供电?

由于每个 gpu 适配器可能连接一到两个显示器,我无法使用显示器编号。

我正在使用 Direct3D10。我不介意 Direct3D9 中的解决方案。

更糟糕的情况是让用户通过命令行选择显示器和适配器,但我更喜欢傻瓜证明方法。

谢谢

【问题讨论】:

    标签: directx direct3d gpu slimdx


    【解决方案1】:

    D3D10 和 D3D11 都使用 DXGI 来管理这样的细节。您创建的 Factory 界面可让您获取系统上安装的适配器列表。每个适配器可以有一个或多个输出,您可以从适配器接口枚举。

    这将为您提供一个输出接口列表,其中包含一个 Description 属性,其中包含输出边界的 Rectangle 以及运行它的监视器的 IntPtr 句柄。

    我不认为 Winforms Screen 类暴露了底层的本地指针,这就是我们提供 SlimDX.Windows.DisplayMonitor 类来替代 Screen 类的原因。您可以使用它来确定显示器的特定细节,并根据您的需要选择合适的适配器。

    【讨论】:

    • 我期待输出作为属性,这就是我没有找到它的原因。这是关于 SlimDX.Windows.DisplayMonitor 的解决方案和信息,非常有帮助
    • 当 Google 已经回答了我的问题并且它在 Stackoverflow 上时,我喜欢它:) 我发现 SlimDX 非常有用。感谢您制作。
    猜你喜欢
    • 1970-01-01
    • 2016-10-18
    • 2013-10-25
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 2017-02-13
    • 2014-08-07
    • 1970-01-01
    相关资源
    最近更新 更多