IDirect3DDevice9::TestCooperativeLevel メソッド
IDirect3DDevice9::TestCooperativeLevel メソッド
ウィンドウ アプリケーションまたはフルスクリーン アプリケーションに対する Microsoft® Direct3D® デバイスの現在の協調レベル ステータスを報告する。
構文
HRESULT TestCooperativeLevel(VOID);
戻り値
成功した場合は、D3D_OK を返す。この戻り値は、デバイスが動作しており、呼び出し側アプリケーションが続行できることを示す。
失敗した場合は、次のいずれかの値を返す (「注意」を参照)。
D3DERR_DEVICELOST | デバイスは、消失しているが、現在リセットできない。したがって、レンダリングは不可能である。 |
D3DERR_DEVICENOTRESET | デバイスは、消失しているが、現在リセットできる。 |
注意
デバイスが失われたにもかかわらず、現時点で復元できない場合、IDirect3DDevice9::TestCooperativeLevel は D3DERR_DEVICELOST 戻りコードを返す。たとえば、フルスクリーン デバイスがフォーカスを失ったような場合である。アプリケーションで消失したデバイスを検出した場合、アプリケーションは一時停止して IDirect3DDevice9::TestCooperativeLevel を定期的に呼び出し、戻り値 D3DERR_DEVICENOTRESET を受け取るまで待機する必要がある。その後で、IDirect3DDevice9::Reset を呼び出してデバイスをリセットする。これに成功した場合は、必要なリソースを復元し、通常の処理を再開する。デバイスの状態が "消失" または "非リセット" のいずれかの場合は、IDirect3DDevice9::Present は D3DERR_DEVICELOST を返すことに注意する。
リセットするデバイスを作成したスレッドとは別のスレッドで IDirect3DDevice9::TestCooperativeLevel を呼び出すと、この呼び出しは失敗する。