次の方法で共有


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 値で作成された場合、 CreateDeferredContext2DXGI_ERROR_INVALID_CALLを返します。
  • ContextFlags パラメーターが無効な場合は、E_INVALIDARGを返します。
  • アプリで使用可能なメモリが不足している場合は、 E_OUTOFMEMORY を返します。

解説

遅延コンテキストは、メインレンダリング スレッド以外のスレッドでグラフィックス コマンドを記録するために使用できるスレッド セーフなコンテキストです。 遅延コンテキストを使用すると、 ID3D11CommandList インターフェイスによってカプセル化されたコマンド リストにグラフィックス コマンドを記録できます。 すべてのシーン 項目を記録した後、最終的なレンダリングのためにメインレンダー スレッドに送信できます。 この方法では、複数のスレッド間で同時にレンダリング タスクを実行し、マルチコア CPU シナリオでパフォーマンスを向上させる可能性があります。

複数の遅延コンテキストを作成できます。

メモD3D11_CREATE_DEVICE_SINGLETHREADED値を使用してデバイスを作成すると、CreateDeferredContext2DXGI_ERROR_INVALID_CALLで失敗し、遅延コンテキストを作成することはできません。
 
遅延コンテキストの詳細については、「 イミディエイト レンダリングと遅延レンダリング」を参照してください。

要件

   
サポートされている最小のクライアント Windows 8.1 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 R2 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー d3d11_2.h
Library D3D11.lib

関連項目

ID3D11Device1::CreateDeferredContext1

ID3D11Device2

ID3D11Device3::CreateDeferredContext3

ID3D11Device::CreateDeferredContext