CD3DX12_STATE_OBJECT_DESC classe

Classe centrale des helpers de création d’objets d’état D3DX12, qui sont des classes d’assistance permettant de créer des objets d’état à partir d’un ensemble arbitraire de sous-objets.

Syntaxe

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();
};

Membres

CD3DX12_STATE_OBJECT_DESC

Constructeur par défaut. Crée un instance initialisé par défaut d’un CD3DX12_STATE_OBJECT_DESC.

CD3DX12_STATE_OBJECT_DESC(D3D12_STATE_OBJECT_TYPE)

Constructeur qui crée une instance d’un CD3DX12_STATE_OBJECT_DESC initialisé avec un type subjobject correspondant à la valeur du D3D12_STATE_OBJECT_TYPE passé.

SetStateObjectType(D3D12_STATE_OBJECT_TYPE)

Méthode qui définit le type subjobject sur la valeur du D3D12_STATE_OBJECT_TYPE passé à celui-ci.

operator const D3D12_STATE_OBJECT_DESC&

Opérateur de conversion qui retourne une référence à une constante D3D12_STATE_OBJECT_DESC objet décrivant l’objet d’état.

operator const D3D12_STATE_OBJECT_DESC*

Opérateur de conversion qui retourne un pointeur vers une constante D3D12_STATE_OBJECT_DESC objet décrivant l’objet d’état.

CreateSubobject

Modèle de fonction qui crée une assistance sububject dont la durée de vie appartient à cette classe.

Le paramètre de modèle T spécifie le type d’assistance d’un sous-objet, par exemple , CD3DX12_HIT_GROUP_SUBOBJECT.

Notes

Pour utiliser les helpers de création d’objet d’état D3DX12, commencez par instancier un objet CD3DX12_STATE_OBJECT_DESC et appelez sa fonction CreateSubobject pour créer des sous-objets. Les helpers de sous-objet ont chacun des méthodes spécifiques à ce sous-objet pour configurer son contenu.

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.
...

Vous pouvez également instancier explicitement les assistances de sous-objets, par exemple via des variables locales, en passant l’objet d’état desc (qui doit pointer vers celui-ci) dans le constructeur d’assistance (ou appeler mySubobjectHelper.AddToStateObject(Collection1)).

Dans ce scénario alternatif, vous devez conserver le sous-objet actif tant que l’objet d’état auquel il est associé est actif, sinon ses références de pointeur seront obsolètes.

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.
...

Spécifications

Condition requise Valeur
En-tête D3dx12.h

Voir aussi