Multiple-Monitor作(Direct3D 9)

当设备成功重置(IDirect3DDevice9::Reset)或在全屏作中创建(IDirect3D9::CreateDevice)时,创建设备的 Direct3D 对象将标记为拥有该系统上的所有适配器。 此状态称为独占模式,Direct3D 对象拥有独占模式。 独占模式意味着任何其他 Direct3D 对象创建的设备既不能承担全屏作,也不能分配视频内存。 此外,当 Direct3D 对象采用独占模式时,除全屏以外的所有设备都处于丢失状态。 有关详细信息,请参阅 丢失的设备(Direct3D 9)

除了独占模式外,Direct3D 对象还会通知焦点窗口设备将使用。 当 Direct3D 对象拥有的最终全屏设备重置为窗口模式或销毁时,将释放独占模式。

当 Direct3D 对象拥有独占模式时,设备可以分为两个类别。 第一类设备具有以下特征。

  • 它们由创建全屏设备的同一 Direct3D 对象创建。
  • 它们具有与全屏设备相同的焦点窗口。
  • 它们表示与任何全屏设备不同的适配器。

此类别中的设备没有限制其重置或创建能力,并且它们不会处于丢失状态。 此类别中的设备甚至可以进入全屏模式。

不属于第一个类别的设备-由另一个 Direct3D 对象创建的设备,使用不同的焦点窗口创建,并为具有已全屏设备的适配器创建的设备无法重置并保持丢失状态,直到独占模式丢失。 因此,多监视器应用程序可以将多个设备置于全屏模式下,但仅当所有这些设备用于不同的适配器时,由同一 Direct3D 对象创建,并共享同一焦点窗口。

演示场景