Compartilhar via


classe CD3DX12_STATE_OBJECT_DESC

A classe central dos Auxiliares de Criação de Objeto de Estado D3DX12, que são classes auxiliares para criar objetos de estado de um conjunto arbitrário de subobjetos.

Sintaxe

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

Membros

CD3DX12_STATE_OBJECT_DESC

Construtor padrão. Cria uma nova instância inicializada por padrão de um CD3DX12_STATE_OBJECT_DESC.

CD3DX12_STATE_OBJECT_DESC(D3D12_STATE_OBJECT_TYPE)

O construtor que cria uma nova instância de um CD3DX12_STATE_OBJECT_DESC inicializado com um tipo de subjobject correspondente ao valor do D3D12_STATE_OBJECT_TYPE passado para ele.

SetStateObjectType(D3D12_STATE_OBJECT_TYPE)

Método que define o tipo de subjobject como o valor do D3D12_STATE_OBJECT_TYPE passado para ele.

operator const D3D12_STATE_OBJECT_DESC&

Operador de conversão que retorna uma referência a um objeto D3D12_STATE_OBJECT_DESC constante que descreve o objeto state.

operator const D3D12_STATE_OBJECT_DESC*

Operador de conversão que retorna um ponteiro para uma constante D3D12_STATE_OBJECT_DESC objeto que descreve o objeto de estado.

CreateSubobject

Um modelo de função que cria um auxiliar de sububject cujo tempo de vida pertence a essa classe.

O parâmetro de modelo T especifica o tipo auxiliar de um subjobject, por exemplo, CD3DX12_HIT_GROUP_SUBOBJECT.

Comentários

Para usar os Auxiliares de Criação de Objeto de Estado D3DX12, comece instanciando um objeto CD3DX12_STATE_OBJECT_DESC e chame sua função CreateSubobject para criar subobjetos. Cada um dos auxiliares do subobjeto tem métodos específicos para esse subobjeto para configurar seu conteúdo.

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, você pode instanciar auxiliares de subobjeto explicitamente, como por meio de variáveis locais, passando o objeto de estado desc (que deve apontar para ele) para o construtor auxiliar (ou chamar mySubobjectHelper.AddToStateObject(Collection1)).

Nesse cenário alternativo, você precisa manter o subobjeto ativo, desde que o objeto de estado ao qual ele está associado esteja ativo, caso contrário, suas referências de ponteiro ficarão 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 Valor
parâmetro D3dx12.h

Confira também