Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Serialisiert eine Stammsignaturversion 1.0, die an ID3D12Device::CreateRootSignature übergeben werden kann.
Syntax
HRESULT D3D12SerializeRootSignature(
[in] const D3D12_ROOT_SIGNATURE_DESC *pRootSignature,
[in] D3D_ROOT_SIGNATURE_VERSION Version,
[out] ID3DBlob **ppBlob,
[out, optional] ID3DBlob **ppErrorBlob
);
Parameter
[in] pRootSignature
Typ: const D3D12_ROOT_SIGNATURE_DESC*
Die Beschreibung der Stammsignatur als Zeiger auf eine D3D12_ROOT_SIGNATURE_DESC-Struktur .
[in] Version
Typ: D3D_ROOT_SIGNATURE_VERSION
Ein D3D_ROOT_SIGNATURE_VERSION typisierter Wert, der die Version der Stammsignatur angibt.
[out] ppBlob
Typ: ID3DBlob**
Ein Zeiger auf einen Speicherblock, der einen Zeiger auf die ID3DBlob-Schnittstelle empfängt, mit dem Sie auf die serialisierte Stammsignatur zugreifen können.
[out, optional] ppErrorBlob
Typ: ID3DBlob**
Ein Zeiger auf einen Speicherblock, der einen Zeiger auf die ID3DBlob-Schnittstelle empfängt, mit dem Sie auf Serialisierungsfehlermeldungen zugreifen können, oder NULL , wenn keine Fehler vorliegen.
Rückgabewert
Typ: HRESULT
Gibt bei erfolgreicher Ausführung S_OK zurück. Gibt andernfalls einen der Direct3D 12-Rückgabecodes zurück.
Hinweise
Diese Funktion wurde ab dem Windows 10 Anniversary Update (14393) durch D3D12SerializeVersionedRootSignature ersetzt.
Wenn eine Anwendung prozedural eine D3D12_ROOT_SIGNATURE_DESC-Datenstruktur generiert, muss sie einen Zeiger auf diese D3D12_ROOT_SIGNATURE_DESC in einem Aufruf von D3D12SerializeRootSignature übergeben, um das serialisierte Formular zu erstellen. Die Anwendung übergibt dann das serialisierte Formular, auf das ppBlob auf ID3D12Device::CreateRootSignature zeigt.
Wenn ein Shader mit einer Stammsignatur erstellt wurde, enthält der kompilierte Shader bereits eine serialisierte Stammsignatur. Übergeben Sie in diesem Fall das kompilierte Shaderblob an ID3D12Device::CreateRootSignature , um das Laufzeitstammsignaturobjekt abzurufen.
Die Funktionssignatur PFN_D3D12_SERIALIZE_ROOT_SIGNATURE wird als Typedef bereitgestellt, sodass Sie dynamische Verknüpfungstechniken (GetProcAddress) anstelle einer statischen Verknüpfung verwenden können.
Beispiele
Erstellen Sie eine leere Stammsignatur.
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)));
Weitere Informationen finden Sie im Beispielcode in der D3D12-Referenz.
Anforderungen
Zielplattform | Windows |
Kopfzeile | d3d12.h |
Bibliothek | D3D12.lib |
DLL | D3D12.dll |