次の方法で共有


D3D12SerializeRootSignature 関数 (d3d12.h)

ID3D12Device::CreateRootSignature に渡すことができるルート署名バージョン 1.0 をシリアル化します。

構文

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

パラメーター

[in] pRootSignature

型: const D3D12_ROOT_SIGNATURE_DESC*

D3D12_ROOT_SIGNATURE_DESC構造体へのポインターとしてのルート署名の説明。

[in] Version

種類: D3D_ROOT_SIGNATURE_VERSION

ルート署名のバージョンを指定する D3D_ROOT_SIGNATURE_VERSION型指定された値。

[out] ppBlob

種類: ID3DBlob**

シリアル化されたルート署名へのアクセスに使用できる ID3DBlob インターフェイスへのポインターを受け取るメモリ ブロックへのポインター。

[out, optional] ppErrorBlob

種類: ID3DBlob**

シリアライザー のエラー メッセージへのアクセスに使用できる ID3DBlob インターフェイスへのポインターを受け取るメモリ ブロックへのポインター。エラーがない場合は NULL

戻り値

種類: HRESULT

成功した場合は、S_OKを返します。それ以外の場合は、Direct3D 12リターン コードのいずれかを返します

解説

この関数は、Windows 10 Anniversary Update (14393) の時点で D3D12SerializeVersionedRootSignature によって重ね合わされています。

アプリケーションがD3D12_ROOT_SIGNATURE_DESCデータ構造を手続き的に生成する場合、シリアル化されたフォームを作成するには、D3D12SerializeRootSignature の呼び出しでこのD3D12_ROOT_SIGNATURE_DESCへのポインターを渡す必要があります。 その後、アプリケーションは、 ppBlobID3D12Device::CreateRootSignature を指すシリアル化されたフォームを渡します。

ルート署名を含むシェーダーを作成した場合、コンパイルされたシェーダーには既にシリアル化されたルート署名が含まれることになります。 この場合は、コンパイルされたシェーダー BLOB を ID3D12Device::CreateRootSignature に渡して、ランタイム ルート署名オブジェクトを取得します。

関数シグネチャ PFN_D3D12_SERIALIZE_ROOT_SIGNATUREは typedef として提供されるため、静的リンクではなく動的リンク手法 (GetProcAddress) を使用できます。

空のルート署名を作成します。

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

D3D12 リファレンスのコード例を参照してください

要件

   
対象プラットフォーム Windows
ヘッダー d3d12.h
Library D3D12.lib
[DLL] D3D12.dll

関連項目

コア関数

ルート署名の作成