ID3D11DeviceContext::FinishCommandList
コマンド リストを作成し、そこにグラフィック コマンドを記録します。
HRESULT
FinishCommandList(
BOOL RestoreDeferredContextState,
ID3D11CommandList **ppCommandList
);
パラメータ
- RestoreDeferredContextState
イミディエイト コンテキスト ステートをコマンド リストの実行前に保存して、コマンド リストの実行後に復元するかどうかを指定するブール値フラグです。ランタイムでステートを保存および復元するには TRUE を指定します。この場合、パフォーマンスは低下します。ステートを保存も復元もしない場合は FALSE を指定します。この場合、コマンド リストの実行後に、イミディエイト コンテキストはその既定のステートに戻ります。 - ppCommandList
このメソッドの完了時には、実行時に渡した ID3D11CommandList インターフェイス ポインターへのポインターが、記録したコマンド リスト情報で初期化されます。
戻り値
成功した場合は、S_OK を返します。それ以外の場合は、次のいずれかを返します。
- ビデオ カードがシステムから物理的に取り外されているか、ビデオ カードのドライバー アップグレードが行われている場合、DXGI_ERROR_DEVICE_REMOVED を返します。このエラーが発生した場合は、デバイスを破棄し、再作成する必要があります。
- 現在のコンテキストから FinishCommandList を呼び出すことができない場合、DXGI_ERROR_INVALID_CALL を返します。「解説」を参照してください。
- 使用可能なメモリーをアプリケーションで使い果たしている場合は、E_OUTOFMEMORY を返します。
解説
ディファード コンテキストからコマンド リストを作成し、FinishCommandList を呼び出してそのコマンド リストにコマンドを記録します。ID3D11DeviceContext::ExecuteCommandList を呼び出すことで、イミディエイト コンテキストでコマンド リストを再生します。
イミディエイト コンテキストのステートは、コマンド リストの実行前および実行後にクリアされます。コマンド リストには、継承という概念はありません。FinishCommandList の呼び出しごとに、前回の FinishCommandList の呼び出し以降に設定されたステートのみが記録されます。
要件
ヘッダー: D3D11.h 宣言
ライブラリ: D3d11.lib 内容