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