CD3DX12_STATE_OBJECT_DESC クラス

D3DX12 State Object Creation Helpers の中央クラス。これは、任意のサブオブジェクト セットから状態オブジェクトを作成するためのヘルパー クラスです。

構文

class CD3DX12_STATE_OBJECT_DESC
{
    CD3DX12_STATE_OBJECT_DESC() noexcept;
    CD3DX12_STATE_OBJECT_DESC(D3D12_STATE_OBJECT_TYPE) noexcept;
    void SetStateObjectType(D3D12_STATE_OBJECT_TYPE) noexcept;
    operator const D3D12_STATE_OBJECT_DESC& ();
    operator const D3D12_STATE_OBJECT_DESC* ();
    template<typename T> T* CreateSubobject();
};

メンバー

CD3DX12_STATE_OBJECT_DESC

既定のコンストラクターです。 CD3DX12_STATE_OBJECT_DESCの新しい既定で初期化されたインスタンスを作成します。

CD3DX12_STATE_OBJECT_DESC(D3D12_STATE_OBJECT_TYPE)

渡されたD3D12_STATE_OBJECT_TYPEの値に対応するサブオブジェクト型で初期化されたCD3DX12_STATE_OBJECT_DESCの新しいインスタンスを作成するコンストラクター。

SetStateObjectType(D3D12_STATE_OBJECT_TYPE)

subjobject 型を、渡された D3D12_STATE_OBJECT_TYPE の値に設定するメソッド。

operator const D3D12_STATE_OBJECT_DESC&

状態オブジェクトを記述する定数 D3D12_STATE_OBJECT_DESC オブジェクトへの参照を返す変換演算子。

operator const D3D12_STATE_OBJECT_DESC*

状態オブジェクトを記述する定数 D3D12_STATE_OBJECT_DESC オブジェクトへのポインターを返す変換演算子。

CreateSubobject

このクラスによって有効期間が所有されている sububject ヘルパーを作成する関数テンプレート。

テンプレート パラメーター T は、CD3DX12_HIT_GROUP_SUBOBJECTなどのサブオブジェクト ヘルパー型を指定します。

解説

D3DX12 State Object Creation Helpers を使用するには、 まずCD3DX12_STATE_OBJECT_DESC オブジェクトをインスタンス化し、 CreateSubobject 関数を呼び出してサブオブジェクトを作成します。 各サブオブジェクト ヘルパーには、その内容を構成するためのそのサブオブジェクトに固有のメソッドがあります。

CD3DX12_STATE_OBJECT_DESC Collection1(D3D12_STATE_OBJECT_TYPE_COLLECTION);
auto Lib0 = Collection1.CreateSubobject<CD3DX12_DXIL_LIBRARY_SUBOBJECT>();
Lib0->SetDXILLibrary(&pMyAppDxilLibs[0]);
Lib0->DefineExport(L"rayGenShader0");
// In practice, these export listings might be data/engine-driven.
...

または、代わりにローカル変数を介してなどのサブオブジェクト ヘルパーを明示的にインスタンス化し、状態オブジェクト desc (これを指す必要があります) をヘルパー コンストラクター (または 呼び出し mySubobjectHelper.AddToStateObject(Collection1)) に渡すこともできます。

この別のシナリオでは、関連付けられている状態オブジェクトが有効である限り、サブオブジェクトを維持する必要があります。それ以外の場合、ポインター参照は古くなります。

CD3DX12_STATE_OBJECT_DESC RaytracingState2(D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE);
CD3DX12_DXIL_LIBRARY_SUBOBJECT LibA(RaytracingState2);
LibA.SetDXILLibrary(&pMyAppDxilLibs[4]);
// Not manually specifying exports; meaning that all exports in the libraries are exported.
...

要件

要件
ヘッダー D3dx12.h

関連項目