Microsoft DirectX 8.0 (C++)

IDirect3DDevice8::Reset

スワップ チェーンのタイプ、サイズ、およびフォーマットをリセットする。

HRESULT Reset(
  D3DPRESENT_PARAMETERS* pPresentationParameters
);

パラメータ

pPresentationParameters
[in] 新しいプレゼンテーション パラメータを記述する D3DPRESENT_PARAMETERS 構造体へのポインタ。この値は NULL にできない。

戻り値

成功した場合は、D3D_OK を返す。

失敗した場合は、次のいずれかの値を返す。

D3DERR_INVALIDCALL
D3DERR_OUTOFVIDEOMEMORY
E_OUTOFMEMORY

注意

Reset の呼び出しが失敗すると、デバイスは "消失" 状態 (IDirect3DDevice::TestCooperativeLevel の呼び出しからの戻り値 D3DERR_DEVICELOST が示す) になる。ただし、デバイスが既に "非リセット" 状態 (IDirect3DDevice8::TestCooperativeLevel の呼び出しからの戻り値 D3DERR_DEVICENOTRESET が示す) の場合は除く。消失したデバイスのコンテキストにおける Reset の使い方の詳細については、「IDirect3DDevice8::TestCooperativeLevel」および「消失したデバイス」を参照すること。

リセットを呼び出すと、すべてのテクスチャ メモリ サーフェスが失われて、管理下のテクスチャがビデオ メモリからフラッシュされて、すべてのステート情報がクリアされる。デバイスに対して Reset メソッドを呼び出す前に、アプリケーションでは明示的なレンダリング ターゲット、深度ステンシル サーフェス、追加スワップ チェーン、およびデバイスに関連付けられている D3DPOOL_DEFAULT リソースを解放する必要がある。

スワップ チェーンのタイプには、フルスクリーンとウィンドウがある。新しいスワップ チェーンがフルスクリーンの場合、アダプタは新しいサイズに合ったディスプレイ モードに設定される。

DirectX 8.0 アプリケーションでは、この呼び出し中 (たとえば、この呼び出しが返る前) はアプリケーションにメッセージが送信されることを期待できる。アプリケーションは、このときに Direct3D を呼び出さないための警告を受け取る。また、Reset が失敗した場合、呼び出すことができる有効なメソッドは ResetIDirect3DDevice8::TestCooperativeLevel、およびさまざまな Release メンバ関数だけである。その他のメソッドを呼び出すと、例外になる場合がある。

リセットするデバイスを作成したスレッドとは別のスレッドで Reset を呼び出すと、この呼び出しは失敗する。

動作環境

  ヘッダー : d3d8.h で宣言。
  インポート ライブラリ : D3d8.lib を使用。

参照

D3DSWAPEFFECTD3DPRESENT_PARAMETERSIDirect3DDevice8::Present