Compartilhar via


Função D3D12SerializeRootSignature (d3d12.h)

Serializa uma assinatura raiz versão 1.0 que pode ser passada para ID3D12Device::CreateRootSignature.

Sintaxe

HRESULT D3D12SerializeRootSignature(
  [in]            const D3D12_ROOT_SIGNATURE_DESC *pRootSignature,
  [in]            D3D_ROOT_SIGNATURE_VERSION      Version,
  [out]           ID3DBlob                        **ppBlob,
  [out, optional] ID3DBlob                        **ppErrorBlob
);

Parâmetros

[in] pRootSignature

Tipo: const D3D12_ROOT_SIGNATURE_DESC*

A descrição da assinatura raiz, como um ponteiro para uma estrutura D3D12_ROOT_SIGNATURE_DESC .

[in] Version

Tipo: D3D_ROOT_SIGNATURE_VERSION

Um valor de tipo D3D_ROOT_SIGNATURE_VERSION que especifica a versão da assinatura raiz.

[out] ppBlob

Tipo: ID3DBlob**

Um ponteiro para um bloco de memória que recebe um ponteiro para a interface ID3DBlob que você pode usar para acessar a assinatura raiz serializada.

[out, optional] ppErrorBlob

Tipo: ID3DBlob**

Um ponteiro para um bloco de memória que recebe um ponteiro para a interface ID3DBlob que você pode usar para acessar mensagens de erro do serializador ou NULL se não houver erros.

Valor retornado

Tipo: HRESULT

Retorna S_OK se tiver êxito; caso contrário, retornará um dos códigos de retorno do Direct3D 12.

Comentários

Essa função foi substituída por D3D12SerializeVersionedRootSignature a partir da Atualização de Aniversário do Windows 10 (14393).

Se um aplicativo gerar processualmente uma estrutura de dados D3D12_ROOT_SIGNATURE_DESC , ele deverá passar um ponteiro para esse D3D12_ROOT_SIGNATURE_DESC em uma chamada para D3D12SerializeRootSignature para tornar o formulário serializado. Em seguida, o aplicativo passa o formulário serializado para o qual ppBlob aponta para ID3D12Device::CreateRootSignature.

Se um sombreador tiver sido criado com uma assinatura raiz, o sombreador compilado já conterá uma assinatura raiz serializada nele. Nesse caso, passe o blob de sombreador compilado para ID3D12Device::CreateRootSignature para obter o objeto de assinatura raiz do runtime.

A assinatura de função PFN_D3D12_SERIALIZE_ROOT_SIGNATURE é fornecida como um typedef, para que você possa usar técnicas de vinculação dinâmica (GetProcAddress) em vez de vincular estaticamente.

Exemplos

Crie uma assinatura raiz vazia.

CD3DX12_ROOT_SIGNATURE_DESC rootSignatureDesc;
rootSignatureDesc.Init(0, nullptr, 0, nullptr, D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT);

ComPtr<ID3DBlob> signature;
ComPtr<ID3DBlob> error;
ThrowIfFailed(D3D12SerializeRootSignature(&rootSignatureDesc, D3D_ROOT_SIGNATURE_VERSION_1, &signature, &error));
ThrowIfFailed(m_device->CreateRootSignature(0, signature->GetBufferPointer(), signature->GetBufferSize(), IID_PPV_ARGS(&m_rootSignature)));

Consulte o código de exemplo na referência D3D12.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho d3d12.h
Biblioteca D3D12.lib
DLL D3D12.dll

Confira também

Core Functions

Como criar uma assinatura raiz