Classe CD3DX12_STATE_OBJECT_DESC
Classe centrale des applications auxiliaires de création d’objets d’État D3DX12, qui sont des classes d’assistance pour la création d’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 une nouvelle instance, initialisée par défaut, d’un CD3DX12_STATE_OBJECT_DESC.
CD3DX12_STATE_OBJECT_DESC(D3D12_STATE_OBJECT_TYPE)
Constructeur qui crée une nouvelle instance d’une CD3DX12_STATE_OBJECT_DESC initialisée avec un type subjobject correspondant à la valeur de l' D3D12_STATE_OBJECT_TYPE passé.
SetStateObjectType(D3D12_STATE_OBJECT_TYPE)
Méthode qui définit le type subjobject sur la valeur de la D3D12_STATE_OBJECT_TYPE qui lui est passée.
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 application d’assistance sububject dont la durée de vie est la propriété de cette classe.
Le paramètre de modèle T spécifie le type d’assistance subjobject, par exemple, CD3DX12_HIT_GROUP_SUBOBJECT.
Remarques
Pour utiliser les applications d’assistance pour la création d’objets d’État D3DX12, commencez par instancier un objet CD3DX12_STATE_OBJECT_DESC et appelez sa fonction CreateSubobject pour créer des sous-objets. Les applications auxiliaires de sous-objet possèdent chacune des méthodes spécifiques à ce sous-objet pour la configuration de 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 des applications auxiliaires de sous-objet, comme par exemple via des variables locales, en passant la description de l’objet d’État (qui doit pointer vers celle-ci) dans le constructeur d’assistance (ou l’appel 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 |