IDirect3DDevice9Ex::ResetEx メソッド (d3d9.h)
他のすべてのサーフェスが永続的なスワップ チェーンの種類、サイズ、および形式をリセットします。
構文
HRESULT ResetEx(
[in, out] D3DPRESENT_PARAMETERS *pPresentationParameters,
[in, out] D3DDISPLAYMODEEX *pFullscreenDisplayMode
);
パラメーター
[in, out] pPresentationParameters
新しいプレゼンテーション パラメーターを記述する 、D3DPRESENT_PARAMETERS 構造体へのポインター。 この値を NULL にすることはできません。
全画面表示モードに切り替えると、Direct3D はバック バッファー形式に一致するデスクトップ形式を検索して、バック バッファーとフロント バッファーの形式が同じになるようにします (色変換の必要性を排除するため)。
このメソッドが返された場合:
- BackBufferCount、BackBufferWidth、および BackBufferHeight は 0 に設定されます。
- BackBufferFormat は、ウィンドウ モードでのみ D3DFORMAT に設定されます。全画面表示モードでは、形式を指定する必要があります。
[in, out] pFullscreenDisplayMode
種類: D3DDISPLAYMODEEX*
目的の表示モードのプロパティを記述する D3DDISPLAYMODEEX 構造体へのポインター。 この値は全画面表示アプリケーションに対して指定する必要がありますが、ウィンドウアプリケーションの 場合は NULL にすることができます。
戻り値
種類: HRESULT
メソッドは、D3D_OK、D3DERR_DEVICELOST、またはD3DERR_DEVICEHUNGを返すことができます ( D3DERR を参照)。
このメソッドがD3DERR_DEVICELOSTまたはD3DERR_DEVICEHUNGを返す場合、アプリケーションは IDirect3DDevice9Ex::ResetEx、 IDirect3DDevice9Ex::CheckDeviceState のみを呼び出すか、インターフェイス ポインターを解放できます。その他の API 呼び出しでは例外が発生します。
注釈
IDirect3DDevice9Ex::ResetEx の呼び出しが失敗した場合、デバイスは失われた状態になります (IDirect3DDevice9Ex::CheckDeviceState の呼び出しからD3DERR_DEVICELOSTの戻り値で示されます)。 紛失したデバイスのコンテキストでの IDirect3DDevice9Ex::ResetEx の使用に関する詳細については、IDirect3DDevice9Ex::CheckDeviceState と紛失したデバイス動作の変更に関するページを参照してください。
以前のバージョンの DirectX とは異なり、 IDirect3DDevice9Ex::ResetEx を呼び出しても、サーフェス、テクスチャ、または状態情報は失われません。
ピクセル シェーダーと頂点シェーダーは、 Direct3D 9 の IDirect3DDevice9Ex::ResetEx 呼び出しで存続します。 アプリケーションで明示的に再作成する必要はありません。
スワップ チェーンには、全画面表示とウィンドウ切り替えの 2 種類があります。 新しいスワップ チェーンが全画面表示の場合、アダプターは新しいサイズに一致する表示モードに配置されます。
アプリケーションは、この呼び出し中 (この呼び出しが返される前など) にメッセージが送信されることを想定できます。アプリケーションでは、現時点では Direct3D を呼び出さない予防措置を講じる必要があります。
IDirect3DDevice9Ex::ResetEx の呼び出しは、リセットされるデバイスの作成に使用されたスレッドとは異なるスレッドで呼び出されると失敗します。
D3DFMT_UNKNOWNは、IDirect3D9Ex::CreateDeviceEx、IDirect3DDevice9Ex::ResetEx、および IDirect3DDevice9::CreateAdditionalSwapChain を呼び出すときに、ウィンドウ モードのバック バッファー形式に指定できます。 つまり、ウィンドウ モードで IDirect3D9Ex::CreateDeviceEx を呼び出す前に、アプリケーションで現在のデスクトップ形式に対してクエリを実行する必要はありません。 全画面表示モードの場合は、バック バッファー形式を指定する必要があります。 BackBufferCount を 0 (BackBufferCount = 0) に設定すると、1 つのバック バッファーになります。
グループ内の複数のディスプレイ アダプターをリセットする場合は、pPresentationParameters を、アダプター グループ内のディスプレイごとに 1 つずつ、 D3DPRESENT_PARAMETERS 構造体の配列を指すように設定します。
D3DCREATE_ADAPTERGROUP_DEVICEを使用してマルチヘッド デバイスが作成された場合、IDirect3DDevice9Ex::ResetEx には、各構造体で全画面表示を指定する必要があるD3DPRESENT_PARAMETERS構造体の配列が必要です。 ウィンドウ モードに戻すには、アプリケーションでデバイスを破棄し、ウィンドウ モードで非マルチヘッド デバイスを再作成する必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d9.h |
Library | D3D9.lib |