Freigeben über


CD3DX12_STATE_OBJECT_DESC-Klasse

Die zentrale Klasse der D3DX12 State Object Creation Helpers, bei denen es sich um Hilfsklassen zum Erstellen von Zustandsobjekten aus einem beliebigen Satz von Unterobjekten handelt.

Syntax

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

Member

CD3DX12_STATE_OBJECT_DESC

Standardkonstruktor Erstellt einen neuen, standardmäßig initialisierten instance einer CD3DX12_STATE_OBJECT_DESC.

CD3DX12_STATE_OBJECT_DESC(D3D12_STATE_OBJECT_TYPE)

Konstruktor, der eine neue instance einer CD3DX12_STATE_OBJECT_DESC erstellt, die mit einem Unterobjekttyp initialisiert wird, der dem Wert des an ihn übergebenen D3D12_STATE_OBJECT_TYPE entspricht.

SetStateObjectType(D3D12_STATE_OBJECT_TYPE)

Methode, die den Unterobjekttyp auf den Wert des D3D12_STATE_OBJECT_TYPE festlegt, der an ihn übergeben wird.

operator const D3D12_STATE_OBJECT_DESC&

Konvertierungsoperator, der einen Verweis auf eine konstante D3D12_STATE_OBJECT_DESC -Objekt zurückgibt, das das Zustandsobjekt beschreibt.

operator const D3D12_STATE_OBJECT_DESC*

Konvertierungsoperator, der einen Zeiger auf eine konstante D3D12_STATE_OBJECT_DESC Objekt zurückgibt, das das Zustandsobjekt beschreibt.

CreateSubobject

Eine Funktionsvorlage, die ein Unterpunkthilfsprogramm erstellt, dessen Lebensdauer dieser Klasse gehört.

Vorlagenparameter T gibt den Hilfstyp eines Unterobjekts an, z. B. CD3DX12_HIT_GROUP_SUBOBJECT.

Bemerkungen

Um die D3DX12 State Object Creation Helpers zu verwenden, instanziieren Sie zunächst ein CD3DX12_STATE_OBJECT_DESC-Objekt , und rufen Sie dessen CreateSubobject-Funktion auf, um Unterobjekte zu erstellen. Die Hilfsprogramme des Unterobjekts verfügen jeweils über Methoden, die für dieses Unterobjekt spezifisch sind, um seinen Inhalt zu konfigurieren.

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

Alternativ können Sie Unterobjekthilfsprogramme explizit instanziieren, z. B. über lokale Variablen, indem Sie das Zustandsobjekt desc (das darauf zeigen sollte) an den Hilfskonstruktor übergeben (oder aufrufen mySubobjectHelper.AddToStateObject(Collection1)).

In diesem alternativen Szenario müssen Sie das Unterobjekt am Leben halten, solange das Zustandsobjekt, dem es zugeordnet ist, aktiv ist, andernfalls sind seine Zeigerverweise veraltet.

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

Anforderungen

Anforderung Wert
Header D3dx12.h

Siehe auch