次の方法で共有


ID3D11Device::CreateDeferredContext メソッド (d3d11.h)

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

構文

HRESULT CreateDeferredContext(
                  UINT                ContextFlags,
  [out, optional] ID3D11DeviceContext **ppDeferredContext
);

パラメーター

ContextFlags

型: UINT

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

[out, optional] ppDeferredContext

種類: ID3D11DeviceContext**

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

戻り値

種類: HRESULT

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

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

注釈

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

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

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

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

要件

要件
対象プラットフォーム Windows
ヘッダー d3d11.h
Library D3d11.lib

こちらもご覧ください

ID3D11Device

ID3D11Device1::CreateDeferredContext1

ID3D11Device2::CreateDeferredContext2

ID3D11Device3::CreateDeferredContext3