ID3D11Device2::CreateDeferredContext2 メソッド (d3d11_2.h)
コマンド リストを記録できる遅延コンテキストを作成します。
構文
HRESULT CreateDeferredContext2(
UINT ContextFlags,
[out, optional] ID3D11DeviceContext2 **ppDeferredContext
);
パラメーター
ContextFlags
型: UINT
将来利用するために予約されています。 0 を渡します。
[out, optional] ppDeferredContext
種類: ID3D11DeviceContext2**
メソッドが完了すると、 ID3D11DeviceContext2 インターフェイス ポインターへの渡されたポインターが初期化されます。
戻り値
種類: HRESULT
成功した場合はS_OKを返します。それ以外の場合は、次のいずれかを返します。
- ビデオ カードがシステムから物理的に削除された場合、またはビデオ カードのドライバーのアップグレードが発生した場合にDXGI_ERROR_DEVICE_REMOVEDを返します。 このエラーが発生した場合は、デバイスを破棄して再作成する必要があります。
- CreateDeferredContext2 メソッドを現在のコンテキストから呼び出せなかった場合は、DXGI_ERROR_INVALID_CALLを返します。 たとえば、デバイスが D3D11_CREATE_DEVICE_SINGLETHREADED 値で作成された場合、 CreateDeferredContext2 は DXGI_ERROR_INVALID_CALLを返します。
- ContextFlags パラメーターが無効な場合は、E_INVALIDARGを返します。
- アプリで使用可能なメモリが不足している場合は、 E_OUTOFMEMORY を返します。
解説
遅延コンテキストは、メインレンダリング スレッド以外のスレッドでグラフィックス コマンドを記録するために使用できるスレッド セーフなコンテキストです。 遅延コンテキストを使用すると、 ID3D11CommandList インターフェイスによってカプセル化されたコマンド リストにグラフィックス コマンドを記録できます。 すべてのシーン 項目を記録した後、最終的なレンダリングのためにメインレンダー スレッドに送信できます。 この方法では、複数のスレッド間で同時にレンダリング タスクを実行し、マルチコア CPU シナリオでパフォーマンスを向上させる可能性があります。
複数の遅延コンテキストを作成できます。
メモD3D11_CREATE_DEVICE_SINGLETHREADED値を使用してデバイスを作成すると、CreateDeferredContext2 はDXGI_ERROR_INVALID_CALLで失敗し、遅延コンテキストを作成することはできません。
要件
サポートされている最小のクライアント | Windows 8.1 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 R2 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | d3d11_2.h |
Library | D3D11.lib |
関連項目
ID3D11Device1::CreateDeferredContext1