次の方法で共有


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

すべての Microsoft Direct3D 状態といくつかの Direct3D 動作を保持するコンテキスト状態オブジェクトを作成します。

構文

HRESULT CreateDeviceContextState(
                  UINT                    Flags,
  [in]            const D3D_FEATURE_LEVEL *pFeatureLevels,
                  UINT                    FeatureLevels,
                  UINT                    SDKVersion,
                  REFIID                  EmulatedInterface,
  [out, optional] D3D_FEATURE_LEVEL       *pChosenFeatureLevel,
  [out, optional] ID3DDeviceContextState  **ppContextState
);

パラメーター

Flags

型: UINT

ビットごとの OR 演算を使用して結合されるD3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG値の組み合わせ。 結果の値は、コンテキスト状態オブジェクトを作成する方法を指定します。 現在、D3D11_1_CREATE_DEVICE_CONTEXT_STATE_SINGLETHREADED フラグは定義されている唯一のフラグです。 元のデバイスが D3D11_CREATE_DEVICE_SINGLETHREADED で作成された場合は、そのデバイスからすべてのコンテキスト状態オブジェクトを D3D11_1_CREATE_DEVICE_CONTEXT_STATE_SINGLETHREADED フラグで作成する必要があります。

コンテキスト状態オブジェクトとデバイスの両方にシングルスレッド フラグを設定する場合は、コンテキスト メソッドとデバイス メソッドのセット全体を 1 つのスレッドからのみ呼び出すようにします。 そのため、重要なセクションを使用してデバイス コンテキストへのアクセスを同期する必要はありません。ランタイムは、プロセッサを集中的に使用するクリティカル セクションの操作を回避できます。

[in] pFeatureLevels

型: const D3D_FEATURE_LEVEL*

D3D_FEATURE_LEVEL値の配列へのポインター。 配列には、次の一覧の要素を含め、作成が試行される機能レベルの順序を決定できます。 D3D11CreateDevice とは異なり、既定の機能レベル配列がないため、pFeatureLevelsを NULL に設定することはできません。

{
    D3D_FEATURE_LEVEL_11_1,
    D3D_FEATURE_LEVEL_11_0,
    D3D_FEATURE_LEVEL_10_1,
    D3D_FEATURE_LEVEL_10_0,
    D3D_FEATURE_LEVEL_9_3,
    D3D_FEATURE_LEVEL_9_2,
    D3D_FEATURE_LEVEL_9_1,
};
          

FeatureLevels

型: UINT

pFeatureLevels 内の要素の数。 D3D11CreateDevice とは異なり、pFeatureLevelsNULL に設定できないため、FeatureLevels を 0 より大きい値に設定する必要があります。

SDKVersion

型: UINT

SDK のバージョン。 このパラメーターは 、D3D11_SDK_VERSIONに設定する必要があります。

EmulatedInterface

型: REFIID

エミュレートされたインターフェイスのグローバル一意識別子 (GUID)。 この値は、コンテキスト状態オブジェクトがアクティブな場合のデバイスの動作を指定します。 有効な値は、ID3D10Device、ID3D10Device1、ID3D11DeviceID3D11Device1 インターフェイスの __uuidof 演算子使用して取得されます。 「解説」を参照してください。

[out, optional] pChosenFeatureLevel

種類: D3D_FEATURE_LEVEL*

pFeatureLevels 配列からD3D_FEATURE_LEVEL値を受け取る変数へのポインター。 これは、 CreateDeviceContextState がコンテキスト状態オブジェクトの作成に成功した最初の配列値です。 CreateDeviceContextState の呼び出しが失敗した場合、pChosenFeatureLevel が指す変数は 0 に設定されます。

[out, optional] ppContextState

種類: ID3DDeviceContextState**

Direct3D デバイスの状態を表す ID3DDeviceContextState オブジェクトへのポインターのアドレス。

戻り値

型: HRESULT

このメソッドは、 Direct3D 11 リターン コードのいずれかを返します

注釈

エミュレートされたインターフェイスの REFIID 値は、 __uuidof 演算子を使用して取得された GUID です。 たとえば、 は、 __uuidof(ID3D11Device) Microsoft Direct3D 11 デバイスへのインターフェイスの GUID を取得します。

ID3D11DeviceContext1::SwapDeviceContextState メソッドを呼び出して、コンテキスト状態オブジェクトをアクティブにします。 コンテキスト状態オブジェクトがアクティブな場合、コンテキスト状態オブジェクトの機能レベルとその互換性のあるインターフェイスの両方に関連付けられているデバイスの動作は、 次に SwapDeviceContextState を呼び出すまで Direct3D デバイスでアクティブ化されます。

コンテキスト状態オブジェクトがアクティブな場合、ランタイムはデバイスインターフェイスとコンテキストインターフェイス上の特定のメソッドを無効にします。 たとえば、 で__uuidof(ID3D11Device)作成されたコンテキスト状態オブジェクトを使用すると、ランタイムは Microsoft Direct3D 10 デバイス インターフェイスの大部分をオフにし、または __uuidof(ID3D10Device) で作成された__uuidof(ID3D10Device1)コンテキスト状態オブジェクトを使用すると、ランタイムはほとんどの ID3D11DeviceContext メソッドをオフにします。 この動作により、いずれかのエミュレートされたインターフェイスのユーザーが、他のエミュレートされたインターフェイスが表現できないデバイス状態を設定できなくなります。 この制限は、 ID3D10Device1 エミュレートインターフェイスがパイプラインの完全な状態を正確に反映し、エミュレートされたインターフェイスが元のインターフェイス定義に反して動作しないことを保証するのに役立ちます。

たとえば、Direct3D 10 と同等のデバイスではなく、D3D11CreateDevice または D3D11CreateDeviceAndSwapChain を使用してデバイスを作成するときに、テセレーション ステージが ID3D11DeviceContext インターフェイスを介してアクティブになるとします。 Direct3D 11 コンテキストはアクティブであるため、 最初に QueryInterface を使用して取得すると、Direct3D 10 インターフェイスは非アクティブになります。 つまり、Direct3D 11 デバイスから取得した Direct3D 10 インターフェイスを関数にすぐに渡すことはできません。 最初に SwapDeviceContextState を呼び出して、Direct3D 10 互換のコンテキスト状態オブジェクトをアクティブにする必要があります。

次の表は、エミュレートされた各インターフェイスでアクティブで非アクティブなメソッドを示しています。

エミュレートされたインターフェイス アクティブなデバイスまたはイミディエイト コンテキスト インターフェイス 非アクティブなデバイスまたはイミディエイト コンテキスト インターフェイス

ID3D11Device または

ID3D11Device1

ID3D11Device

IDXGIDevice +

IDXGIDevice1 +

IDXGIDevice2

ID3D10Multithread

ID3D10Device

ID3D10Device1 または

ID3D10Device

ID3D10Device

ID3D10Device1

IDXGIDevice +

IDXGIDevice1

ID3D10Multithread

ID3D11Device

ID3D11DeviceContext (イミディエイト コンテキストによって公開されます。Direct3D 10 または Microsoft Direct3D 10.1 エミュレートインターフェイスは、遅延コンテキストには影響しません)。

 

次の表は、指定されたコンテキスト状態オブジェクトがアクティブな場合にランタイムが無効にする即時コンテキスト メソッドを示しています。

または __uuidof(ID3D10Device) がアクティブな場合__uuidof(ID3D10Device1)ID3D11DeviceContext のメソッド がアクティブな場合__uuidof(ID3D11Device)ID3D10Device のメソッド

ClearDepthStencilView

ClearDepthStencilView

ClearRenderTargetView

ClearRenderTargetView

ClearState

ClearState

ClearUnorderedAccessViewUint

ClearUnorderedAccessViewFloat

CopyResource

CopyResource

CopyStructureCount

CopySubresourceRegion

CopySubresourceRegion

CSGetConstantBuffers

CSGetSamplers

CSGetShader

CSGetShaderResources

CSGetUnorderedAccessViews

CSSetConstantBuffers

CSSetSamplers

CSSetShader

CSSetShaderResources

CSSetUnorderedAccessViews

Dispatch

DispatchIndirect

CreateBlendState

描画

描画

DrawAuto

DrawAuto

DrawIndexed

DrawIndexed

DrawIndexedInstanced

DrawIndexedInstanced

DrawIndexedInstancedIndirect

DrawInstanced

DrawInstanced

DrawInstancedIndirect

DSGetConstantBuffers

DSGetSamplers

DSGetShader

DSGetShaderResources

DSSetConstantBuffers

DSSetSamplers

DSSetShader

DSSetShaderResources

ExecuteCommandList

FinishCommandList

フラッシュ

フラッシュ

GenerateMips

GenerateMips

GetPredication

GetPredication

GetResourceMinLOD

GetType

GetTextFilterSize

GSGetConstantBuffers

GSGetConstantBuffers

GSGetSamplers

GSGetSamplers

GSGetShader

GSGetShader

GSGetShaderResources

GSGetShaderResources

GSSetConstantBuffers

GSSetConstantBuffers

GSSetSamplers

GSSetSamplers

GSSetShader

GSSetShader

GSSetShaderResources

GSSetShaderResources

HSGetConstantBuffers

HSGetSamplers

HSGetShader

HSGetShaderResources

HSSetConstantBuffers

HSSetSamplers

HSSetShader

HSSetShaderResources

IAGetIndexBuffer

IAGetIndexBuffer

IAGetInputLayout

IAGetInputLayout

IAGetPrimitiveTopology

IAGetPrimitiveTopology

IAGetVertexBuffers

IAGetVertexBuffers

IASetIndexBuffer

IASetIndexBuffer

IASetInputLayout

IASetInputLayout

IASetPrimitiveTopology

IASetPrimitiveTopology

IASetVertexBuffers

IASetVertexBuffers

OMGetBlendState

OMGetBlendState

OMGetDepthStencilState

OMGetDepthStencilState

OMGetRenderTargets

OMGetRenderTargets

OMGetRenderTargetsAndUnorderedAccessViews

OMSetBlendState

OMSetBlendState

OMSetDepthStencilState

OMSetDepthStencilState

OMSetRenderTargets

OMSetRenderTargets

OMSetRenderTargetsAndUnorderedAccessViews

PSGetConstantBuffers

PSGetConstantBuffers

PSGetSamplers

PSGetSamplers

PSGetShader

PSGetShader

PSGetShaderResources

PSGetShaderResources

PSSetConstantBuffers

PSSetConstantBuffers

PSSetSamplers

PSSetSamplers

PSSetShader

PSSetShader

PSSetShaderResources

PSSetShaderResources

ResolveSubresource

ResolveSubresource

RSGetScissorRects

RSGetScissorRects

RSGetState

RSGetState

RSGetViewports

RSGetViewports

RSSetScissorRects

RSSetScissorRects

RSSetState

RSSetState

RSSetViewports

RSSetViewports

SetPredication

SetPredication

SetResourceMinLOD

SetTextFilterSize

SOGetTargets

SOGetTargets

SOSetTargets

SOSetTargets

UpdateSubresource

UpdateSubresource

VSGetConstantBuffers

VSGetConstantBuffers

VSGetSamplers

VSGetSamplers

VSGetShader

VSGetShader

VSGetShaderResources

VSGetShaderResources

VSSetConstantBuffers

VSSetConstantBuffers

VSSetSamplers

VSSetSamplers

VSSetShader

VSSetShader

VSSetShaderResources

VSSetShaderResources

 

次の表は、指定されたコンテキスト状態オブジェクトがアクティブな場合にランタイムが無効にしない即時コンテキスト メソッドを示しています。

または __uuidof(ID3D10Device) がアクティブな場合__uuidof(ID3D10Device1)ID3D11DeviceContext のメソッド がアクティブな場合__uuidof(ID3D11Device)ID3D10Device のメソッド

開始

End

GetCreationFlags

GetPrivateData

GetContextFlags

GetData

Map

Unmap

 

次の表は、ランタイムが即時コンテキスト メソッドではないので無効にしない ID3D10Device インターフェイス メソッドを示しています。

ID3D10Device のメソッド

CheckCounter

CheckCounterInfo

Create* (CreateQuery など)

GetDeviceRemovedReason

GetExceptionMode

OpenSharedResource

SetExceptionMode

SetPrivateData

SetPrivateDataInterface

 

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

要件

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

こちらもご覧ください

ID3D11Device1