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 |