Microsoft DirectX 8.0 (C++) |
フルスクリーン処理においてデバイスのリセット (IDirect3DDevice8::Reset) または作成 (IDirect3D8::CreateDevice) に成功すると、そのデバイスを作成した Microsoft® Direct3D® オブジェクトがシステム上のすべてのアダプタを所有しているものとしてマークされる。この状態は排他モードと呼ばれ、Direct3D オブジェクトは排他モードを所有している。排他モードでは、ほかの Direct3D オブジェクトによって作成されたデバイスがフルスクリーン処理を行ったりビデオ メモリを割り当てることはできない。また、ある Direct3D オブジェクトが排他モードであると見なされたとき、フルスクリーンになった以外のほかのデバイスは消失状態になる。詳細については、「消失したデバイス」を参照すること。
排他モードでは、Direct3D オブジェクトに、デバイスが使用するフォーカス ウィンドウが知らされる。その Direct3D オブジェクットが所有する最後のフルスクリーン デバイスがウィンドウ モードにリセットされるか破棄されると、排他モードは解放される。
Direct3D オブジェクトが排他モードを所有するとき、デバイスは 2 つのカテゴリに分類される。最初のカテゴリのデバイスには、以下の特性がある。
このカテゴリのデバイスにはリセット処理や作成処理に関する制限はなく、消失状態にならない。このカテゴリのデバイスは、フルスクリーン モードにすることもできる。
最初のカテゴリに入らないデバイス (別の Direct3D オブジェクトによって作成され、別のフォーカス ウィンドウで作成され、既にフルスクリーンのデバイスがあるアダプタに作成されたデバイス) は、リセットできず、排他モードがなくなるまで消失状態から解放されない。結果として、マルチモニタ アプリケーションでは複数のデバイスをフルスクリーン モードにすることができるが、それは、これらのデバイスがすべて異なるアダプタのデバイスであり、同じ Direct3D オブジェクトによって作成され、しかも同じフォーカス ウィンドウを共有する場合に限られる。