Microsoft DirectX 8.0 (C++) |
スワップ チェーンのタイプ、サイズ、およびフォーマットをリセットする。
HRESULT Reset( D3DPRESENT_PARAMETERS* pPresentationParameters );
成功した場合は、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 が失敗した場合、呼び出すことができる有効なメソッドは Reset、IDirect3DDevice8::TestCooperativeLevel、およびさまざまな Release メンバ関数だけである。その他のメソッドを呼び出すと、例外になる場合がある。
リセットするデバイスを作成したスレッドとは別のスレッドで Reset を呼び出すと、この呼び出しは失敗する。
ヘッダー : d3d8.h で宣言。
インポート ライブラリ : D3d8.lib を使用。
D3DSWAPEFFECT、D3DPRESENT_PARAMETERS、IDirect3DDevice8::Present