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 |