Share via


ID3D11Device1::CreateDeferredContext1 メソッド (d3d11_1.h)

コマンド リストを記録できる遅延コンテキストを作成します。

構文

HRESULT CreateDeferredContext1(
                  UINT                 ContextFlags,
  [out, optional] ID3D11DeviceContext1 **ppDeferredContext
);

パラメーター

ContextFlags

将来利用するために予約されています。 0 を渡します。

[out, optional] ppDeferredContext

メソッドが完了すると、 ID3D11DeviceContext1 インターフェイス ポインターへの渡されたポインターが初期化されます。

戻り値

成功した場合はS_OKを返します。それ以外の場合は、次のいずれかを返します。

  • グラフィックス アダプター コンピューターから物理的に削除された場合、またはグラフィックス アダプターのドライバーのアップグレードが発生した場合は、DXGI_ERROR_DEVICE_REMOVEDを返します。 このエラーが発生した場合は、デバイスを破棄して再作成する必要があります。
  • CreateDeferredContext1 メソッドを現在のコンテキストから呼び出すことができない場合は、DXGI_ERROR_INVALID_CALLを返します。 たとえば、デバイスが D3D11_CREATE_DEVICE_SINGLETHREADED 値で作成された場合、 CreateDeferredContext1DXGI_ERROR_INVALID_CALLを返します。
  • ContextFlags パラメーターが無効な場合は、E_INVALIDARGを返します。
  • アプリケーションで使用可能なメモリが不足している場合は、 E_OUTOFMEMORY を返します。

解説

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

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

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

Windows Phone 8: この API はサポートされています。

要件

   
サポートされている最小のクライアント Windows 8 および Windows 7 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 および Windows Server 2008 R2 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー d3d11_1.h
Library D3D11.lib

関連項目

ID3D11Device1

ID3D11Device2::CreateDeferredContext2

ID3D11Device3::CreateDeferredContext3

ID3D11Device::CreateDeferredContext