Fungsi D3D12SerializeRootSignature (d3d12.h)
Membuat serialisasi tanda tangan root versi 1.0 yang dapat diteruskan ke ID3D12Device::CreateRootSignature.
Sintaks
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
Jenis: const D3D12_ROOT_SIGNATURE_DESC*
Deskripsi tanda tangan akar, sebagai penunjuk ke struktur D3D12_ROOT_SIGNATURE_DESC .
[in] Version
Jenis: D3D_ROOT_SIGNATURE_VERSION
Nilai jenis D3D_ROOT_SIGNATURE_VERSION yang menentukan versi tanda tangan akar.
[out] ppBlob
Jenis: ID3DBlob**
Penunjuk ke blok memori yang menerima penunjuk ke antarmuka ID3DBlob yang dapat Anda gunakan untuk mengakses tanda tangan akar yang diserialisasikan.
[out, optional] ppErrorBlob
Jenis: ID3DBlob**
Penunjuk ke blok memori yang menerima penunjuk ke antarmuka ID3DBlob yang dapat Anda gunakan untuk mengakses pesan kesalahan serializer, atau NULL jika tidak ada kesalahan.
Nilai kembali
Jenis: HRESULT
Mengembalikan S_OK jika berhasil; jika tidak, mengembalikan salah satu Kode Pengembalian Direct3D 12.
Keterangan
Fungsi ini telah digantikan oleh D3D12SerializeVersionedRootSignature pada Windows 10 Anniversary Update (14393).
Jika aplikasi secara prosedural menghasilkan struktur data D3D12_ROOT_SIGNATURE_DESC , aplikasi harus meneruskan penunjuk ke D3D12_ROOT_SIGNATURE_DESC ini dalam panggilan ke D3D12SerializeRootSignature untuk membuat formulir berseri. Aplikasi kemudian meneruskan formulir berseri yang ditunjukkan ppBlob ke ID3D12Device::CreateRootSignature.
Jika shader telah ditulis dengan tanda tangan akar di dalamnya, shader yang dikompilasi akan berisi tanda tangan akar berseri di dalamnya. Dalam hal ini, teruskan blob shader yang dikompilasi ke ID3D12Device::CreateRootSignature untuk mendapatkan objek tanda tangan akar runtime.
Tanda tangan fungsi PFN_D3D12_SERIALIZE_ROOT_SIGNATURE disediakan sebagai typedef, sehingga Anda dapat menggunakan teknik penautan dinamis (GetProcAddress) alih-alih menautkan secara statis.
Contoh
Buat tanda tangan akar kosong.
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)));
Lihat Contoh Kode dalam Referensi D3D12.
Persyaratan
Target Platform | Windows |
Header | d3d12.h |
Pustaka | D3D12.lib |
DLL | D3D12.dll |