다음을 통해 공유


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 기본으로 초기화된 새 instance 만듭니다.

CD3DX12_STATE_OBJECT_DESC(D3D12_STATE_OBJECT_TYPE)

전달된 D3D12_STATE_OBJECT_TYPE 값에 해당하는 하위 작업 형식으로 초기화된 CD3DX12_STATE_OBJECT_DESCinstance 만드는 생성자입니다.

SetStateObjectType(D3D12_STATE_OBJECT_TYPE)

하위 결합 형식을 전달된 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

이 클래스에서 수명을 소유하는 하위 구독 도우미를 만드는 함수 템플릿입니다.

템플릿 매개 변수 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

추가 정보