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 |