Share via


classe CD3DX12_STATE_OBJECT_DESC

Classe centrale dei helper D3DX12 State Object Creation, che sono classi helper per la creazione di oggetti di stato fuori da un set arbitrario di oggetti secondari.

Sintassi

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

Members

CD3DX12_STATE_OBJECT_DESC

Costruttore predefinito. Crea una nuova istanza inizializzata predefinita di un CD3DX12_STATE_OBJECT_DESC.

CD3DX12_STATE_OBJECT_DESC(D3D12_STATE_OBJECT_TYPE)

Costruttore che crea una nuova istanza di un CD3DX12_STATE_OBJECT_DESC inizializzato con un tipo subjobject corrispondente al valore dell'D3D12_STATE_OBJECT_TYPE passato.

SetStateObjectType(D3D12_STATE_OBJECT_TYPE)

Metodo che imposta il tipo subjobject sul valore del D3D12_STATE_OBJECT_TYPE passato.

operator const D3D12_STATE_OBJECT_DESC&

Operatore di conversione che restituisce un riferimento a una costante D3D12_STATE_OBJECT_DESC oggetto che descrive l'oggetto state.

operator const D3D12_STATE_OBJECT_DESC*

Operatore di conversione che restituisce un puntatore a una costante D3D12_STATE_OBJECT_DESC oggetto che descrive l'oggetto state.

CreateSubobject

Modello di funzione che crea un helper sububject la cui durata è di proprietà di questa classe.

Il parametro modello T specifica il tipo di helper subjobject, ad esempio CD3DX12_HIT_GROUP_SUBOBJECT.

Commenti

Per usare gli helper di creazione di oggetti stati D3DX12, iniziare creando un'istanza di un oggetto CD3DX12_STATE_OBJECT_DESC e chiamare la funzione CreateSubobject per creare oggetti secondari. Gli helper subobject hanno metodi specifici per tale oggetto secondario per la configurazione del relativo contenuto.

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

In alternativa, è possibile creare un'istanza di helper subobject in modo esplicito, ad esempio tramite variabili locali, passando il desc dell'oggetto stato (che dovrebbe puntare a esso) nel costruttore helper (o chiamare mySubobjectHelper.AddToStateObject(Collection1)).

In questo scenario alternativo è necessario mantenere attivo l'oggetto secondario finché l'oggetto stato a cui è associato è attivo, altrimenti i riferimenti del puntatore saranno non aggiornati.

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

Requisiti

Requisito Valore
Intestazione D3dx12.h

Vedi anche