次の方法で共有


複数モニターによる操作 (Direct3D 9)

デバイスが全画面操作で正常にリセット (IDirect3DDevice9::Reset) または作成 (IDirect3D9::CreateDevice) されると、そのデバイスを作成した Direct3D オブジェクトはそのシステム上のすべてのアダプターを所有しているとしてマークされます。この状態は排他的モードとして知られ、Direct3D オブジェクトは排他的モードを所有します。排他的モードとは、他のいずれかの Direct3D オブジェクトによって作成されたデバイスは全画面操作を実行することも、ビデオ メモリーを割り当てることもできないことを意味します。さらに、Direct3D オブジェクトが排他的モードをとると、全画面になっていたデバイスを除くすべてのデバイスが喪失状態に置かれます。詳細については、「喪失したデバイス (Direct3D 9)」を参照してください。

排他的モードとともに、Direct3D オブジェクトにはデバイスが使用するフォーカス ウィンドウが通知されます。その Direct3D オブジェクトが所有する最終的な全画面デバイスがウィンドウ表示モードまたは破棄にリセットされると、排他的モードが解放されます。

Direct3D オブジェクトが排他的モードを所有する場合、デバイスは 2 つのカテゴリに分割できます。デバイスの最初のカテゴリには次の特徴があります。

  • 全画面のデバイスを作成した同じ Direct3D オブジェクトによって作成されます。
  • 全画面のデバイスと同じフォーカス ウィンドウを持ちます。
  • 全画面デバイスからの各種アダプターを表します。

このカテゴリのデバイスには、それぞれの機能をリセットまたは作成することに関して制限がなく、喪失状態に置かれることはありません。このカテゴリのデバイスは、全画面モードに置くことも可能です。

この最初のカテゴリに入らないデバイス、つまり別の Direct3D オブジェクトによって作成されたデバイス、別のフォーカス ウィンドウで作成されたデバイス、およびすでに全画面にあるデバイスとともにアダプター用に作成されたデバイスは、リセットできず、排他的モードが解除されるまで喪失状態のままとなります。そのため、複数モニターのアプリケーションでは、複数のデバイスを全画面に配置することができますが、これは、これらのすべてのデバイスが各種アダプター用であり、同じ Direct3D オブジェクトによって作成されていて、同じフォーカス ウィンドウを共有している場合に限ります。