次の方法で共有


IDirect3DDevice9Ex::ResetEx

スワップ チェーンのタイプ、サイズ、およびフォーマットをリセットします (他のすべてのサーフェスは変更しない)。

HRESULT 
ResetEx(
  D3DPRESENT_PARAMETERS* pPresentationParameters,
  D3DDISPLAYMODEEX* pFullscreenDisplayMode
);

パラメータ

  • pPresentationParameters
    新しいプレゼンテーション パラメーターを表す D3DPRESENT_PARAMETERS 構造体へのポインター。この値には NULL を指定できません。 全画面モードに切り替えるときに、Direct3D はバックバッファー フォーマットに一致するデスクトップ フォーマットを検索します。これにより、バックバッファー およびフロント バッファーのフォーマットは同じになります (カラー変換の必要を回避します)。
    このメソッドは、次のように設定します。

  • BackBufferCount、BackBufferWidth、および BackBufferHeight はゼロに設定されます。

  • BackBufferFormat は、ウィンドウ表示モードの場合にのみ、D3DFORMAT に設定されます。全画面モードの場合はフォーマットを指定する必要があります。

  • pFullscreenDisplayMode
    目的の表示モードのプロパティを示す D3DDISPLAYMODEEX 構造体へのポインター。この値は、全画面アプリケーションの場合は指定が必須ですが、ウィンドウ表示アプリケーションの場合は NULL を指定できます。

戻り値

このメソッドでは、以下の値を返すことができます。D3D_OK、D3DERR_DEVICELOST、または D3DERR_DEVICEHUNG (D3DERR を参照)。

このメソッドから D3DERR_DEVICELOST または D3DERR_DEVICEHUNG が返された場合、アプリケーションでは IDirect3DDevice9Ex::ResetExIDirect3DDevice9Ex::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::CreateDeviceExIDirect3DDevice9Ex::ResetEx、および IDirect3DDevice9::CreateAdditionalSwapChain を呼び出す際、ウィンドウ表示モードのバック バッファー フォーマットに対して指定できます。つまり、ウィンドウ表示モードの IDirect3D9Ex::CreateDeviceEx を呼び出す前に、現在のデスクトップ フォーマットをクエリする必要はありません。フルスクリーン モードの場合、バック バッファー フォーマットを指定する必要があります。BackBufferCount をゼロに設定する (BackBufferCount = 0) と、バック バッファーは 1 つになります。

グループ内の複数のディスプレイ アダプターをリセットするときは、アダプター グループのディスプレイごとに D3DPRESENT_PARAMETERS 構造体の配列をポイントするように pPresentationParameters を設定します。

D3DCREATE_ADAPTERGROUP_DEVICE を使用してマルチヘッド デバイスを作成した場合、IDirect3DDevice9Ex::ResetEx では一連の D3DPRESENT_PARAMETERS 構造体 (各構造体で全画面表示を指定) から構成される配列を指定する必要があります。ウィンドウ表示モードに戻るには、デバイスを破棄して、ウィンドウ表示モードでマルチヘッド以外のデバイスを再作成する必要があります。

要件

ヘッダー: D3d9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

IDirect3DDevice9Ex