Compartir a través de


CD3DX12_STATE_OBJECT_DESC clase

La clase central de los asistentes de creación de objetos de estado D3DX12, que son clases auxiliares para crear objetos de estado a partir de un conjunto arbitrario de subobjetos.

Sintaxis

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

Miembros

CD3DX12_STATE_OBJECT_DESC

Constructor predeterminado. Crea una nueva instancia inicializada de forma predeterminada de un CD3DX12_STATE_OBJECT_DESC.

CD3DX12_STATE_OBJECT_DESC(D3D12_STATE_OBJECT_TYPE)

Constructor que crea una nueva instancia de un CD3DX12_STATE_OBJECT_DESC inicializado con un tipo de subobjeto correspondiente al valor del D3D12_STATE_OBJECT_TYPE pasado a él.

SetStateObjectType(D3D12_STATE_OBJECT_TYPE)

Método que establece el tipo de subjobject en el valor del D3D12_STATE_OBJECT_TYPE pasado a él.

operator const D3D12_STATE_OBJECT_DESC&

Operador de conversión que devuelve una referencia a una constante D3D12_STATE_OBJECT_DESC objeto que describe el objeto de estado.

operator const D3D12_STATE_OBJECT_DESC*

Operador de conversión que devuelve un puntero a una constante D3D12_STATE_OBJECT_DESC objeto que describe el objeto de estado.

CreateSubobject

Plantilla de función que crea un asistente de subsubjeciones cuya duración pertenece a esta clase.

El parámetro template T especifica el tipo auxiliar de subjobject, por ejemplo, CD3DX12_HIT_GROUP_SUBOBJECT.

Comentarios

Para usar los asistentes de creación de objetos de estado D3DX12, comience creando instancias de un objeto CD3DX12_STATE_OBJECT_DESC y llame a su función CreateSubobject para crear subobjetos. Cada uno de los asistentes de subobjetos tiene métodos específicos de ese subobjeto para configurar su contenido.

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

Como alternativa, puede crear instancias de los asistentes de subobjetos explícitamente, como a través de variables locales en su lugar, pasando el objeto de estado desc (que debe apuntar a él) en el constructor auxiliar (o llamar a mySubobjectHelper.AddToStateObject(Collection1)).

En este escenario alternativo, debe mantener activo el subobjeto siempre que el objeto de estado al que está asociado esté activo; de lo contrario, sus referencias de puntero estarán obsoletas.

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

Requisitos

Requisito Value
Encabezado D3dx12.h

Consulte también