D3D12SerializeRootSignature, fonction (d3d12.h)

Sérialise une signature racine version 1.0 qui peut être passée à ID3D12Device::CreateRootSignature.

Syntaxe

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

Paramètres

[in] pRootSignature

Type : const D3D12_ROOT_SIGNATURE_DESC*

Description de la signature racine, en tant que pointeur vers une structure D3D12_ROOT_SIGNATURE_DESC .

[in] Version

Type : D3D_ROOT_SIGNATURE_VERSION

Valeur de type D3D_ROOT_SIGNATURE_VERSION qui spécifie la version de la signature racine.

[out] ppBlob

Type : ID3DBlob**

Pointeur vers un bloc de mémoire qui reçoit un pointeur vers l’interface ID3DBlob que vous pouvez utiliser pour accéder à la signature racine sérialisée.

[out, optional] ppErrorBlob

Type : ID3DBlob**

Pointeur vers un bloc de mémoire qui reçoit un pointeur vers l’interface ID3DBlob que vous pouvez utiliser pour accéder aux messages d’erreur du sérialiseur, ou NULL s’il n’y a aucune erreur.

Valeur retournée

Type : HRESULT

Retourne S_OK en cas de réussite ; dans le cas contraire, retourne l’un des codes de retour Direct3D 12.

Notes

Cette fonction a été superposée à D3D12SerializeVersionedRootSignature depuis la mise à jour anniversaire Windows 10 (14393).

Si une application génère de manière procédurale une structure de données D3D12_ROOT_SIGNATURE_DESC , elle doit passer un pointeur vers cette D3D12_ROOT_SIGNATURE_DESC dans un appel à D3D12SerializeRootSignature pour créer le formulaire sérialisé. L’application transmet ensuite le formulaire sérialisé vers lequel ppBlob pointe vers ID3D12Device::CreateRootSignature.

Si un nuanceur a été créé avec une signature racine, le nuanceur compilé contient déjà une signature racine sérialisée. Dans ce cas, passez l’objet blob de nuanceur compilé à ID3D12Device::CreateRootSignature pour obtenir l’objet de signature racine du runtime.

Le PFN_D3D12_SERIALIZE_ROOT_SIGNATURE de signature de fonction est fourni en tant que typedef, ce qui vous permet d’utiliser des techniques de liaison dynamique (GetProcAddress) au lieu d’une liaison statique.

Exemples

Créez une signature racine vide.

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

Reportez-vous à l’exemple de code dans la référence D3D12.

Spécifications

   
Plateforme cible Windows
En-tête d3d12.h
Bibliothèque D3D12.lib
DLL D3D12.dll

Voir aussi

Fonctions Core

Création d’une signature racine