Compartir a través de


Función D3D12SerializeRootSignature (d3d12.h)

Serializa una firma raíz versión 1.0 que se puede pasar a ID3D12Device::CreateRootSignature.

Sintaxis

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*

Descripción de la firma raíz, como puntero a una estructura de D3D12_ROOT_SIGNATURE_DESC .

[in] Version

Tipo: D3D_ROOT_SIGNATURE_VERSION

Valor con tipo D3D_ROOT_SIGNATURE_VERSION que especifica la versión de la firma raíz.

[out] ppBlob

Tipo: ID3DBlob**

Puntero a un bloque de memoria que recibe un puntero a la interfaz ID3DBlob que puede usar para acceder a la firma raíz serializada.

[out, optional] ppErrorBlob

Tipo: ID3DBlob**

Puntero a un bloque de memoria que recibe un puntero a la interfaz ID3DBlob que puede usar para acceder a los mensajes de error del serializador o NULL si no hay errores.

Valor devuelto

Tipo: HRESULT

Devuelve S_OK si se ejecuta correctamente; de lo contrario, devuelve uno de los códigos de retorno de Direct3D 12.

Comentarios

D3D12SerializeVersionedRootSignature ha superado esta función a partir de la actualización de aniversario de Windows 10 (14393).

Si una aplicación genera de forma procesal una estructura de datos D3D12_ROOT_SIGNATURE_DESC , debe pasar un puntero a este D3D12_ROOT_SIGNATURE_DESC en una llamada a D3D12SerializeRootSignature para crear el formulario serializado. A continuación, la aplicación pasa el formulario serializado al que ppBlob apunta a ID3D12Device::CreateRootSignature.

Si se ha creado un sombreador con una firma raíz en él, el sombreador compilado contendrá una firma raíz serializada ya. En este caso, pase el blob del sombreador compilado a ID3D12Device::CreateRootSignature para obtener el objeto de firma raíz en tiempo de ejecución.

La firma de función PFN_D3D12_SERIALIZE_ROOT_SIGNATURE se proporciona como definición de tipo, para que pueda usar técnicas de vinculación dinámica (GetProcAddress) en lugar de vincular estáticamente.

Ejemplos

Cree una firma raíz vacía.

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 el código de ejemplo en la referencia D3D12.

Requisitos

   
Plataforma de destino Windows
Encabezado d3d12.h
Library D3D12.lib
Archivo DLL D3D12.dll

Consulte también

Funciones principales

Creación de una firma raíz