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 内容

関連項目

ID3D11DeviceContext