Bagikan melalui


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

Lihat juga

Fungsi Inti

Membuat Tanda Tangan Akar