Win32 API 日本語リファレンス
ホームGraphics.Direct3D12 › ID3D12VersionedRootSignatureDeserializer

ID3D12VersionedRootSignatureDeserializer

COM
IID7f91ce67-090c-4bb7-b78e-ed8ff2e31da0継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

任意のバージョンのシリアル化されたルートシグネチャについて、逆シリアル化された D3D12_ROOT_SIGNATURE_DESC1 データ構造を返すメソッドを含みます。

解説(Remarks)

このインターフェイスは ID3D12RootSignatureDeserializer に代わるものです。

メソッド 2

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetRootSignatureDescAtVersion(D3D_ROOT_SIGNATURE_VERSION convertToVersion, D3D12_VERSIONED_ROOT_SIGNATURE_DESC** ppDesc)

ルートシグネチャ記述構造体を、要求されたバージョンに変換します。

convertToVersionD3D_ROOT_SIGNATURE_VERSIONin必要とする D3D_ROOT_SIGNATURE_VERSION を指定します。
ppDescD3D12_VERSIONED_ROOT_SIGNATURE_DESC**out逆シリアル化されたルートシグネチャを D3D12_VERSIONED_ROOT_SIGNATURE_DESC 構造体として格納します。

戻り値

型: HRESULT

このメソッドは HRESULT の成功コードまたはエラーコードを返します。このメソッドは E_OUTOFMEMORY で失敗することがあります。

解説(Remarks)

このメソッドは、変換後のルートシグネチャのために必要であれば追加のストレージを割り当てます (メモリはデシリアライザー インターフェイスが所有します)。変換が行われた場合でも、デシリアライザー インターフェイスは元の逆シリアル化されたルートシグネチャのメモリを解放しません。変換を要求されたすべてのバージョンは、デシリアライザーが破棄されるまで利用できます。

ルートシグネチャを 1.1 から 1.0 に変換すると、すべての D3D12_DESCRIPTOR_RANGE_FLAGS および D3D12_ROOT_DESCRIPTOR_FLAGS が失われます。これは最適化の機会は失われるものの、古いオペレーティング システム上で動作する必要のある互換性のあるルートシグネチャを生成するのに役立ちます。たとえば、複数のバージョンのルートシグネチャをシリアル化してアプリケーションのアセットとともに保存しておき、実行時にオペレーティング システムの機能に応じて適切なバージョンを使用することができます。

ルートシグネチャを 1.0 から 1.1 に変換する場合は、1.0 のセマンティクスに合致するよう適切なフラグが追加されるだけです。

vtbl 4 D3D12_VERSIONED_ROOT_SIGNATURE_DESC* GetUnconvertedRootSignatureDesc()

ルートシグネチャのバージョン間の変換を行わずに、ルートシグネチャのレイアウトを取得します。

戻り値

型: D3D12_VERSIONED_ROOT_SIGNATURE_DESC

このメソッドは、ルートシグネチャのレイアウトを記述する D3D12_VERSIONED_ROOT_SIGNATURE_DESC 構造体として、逆シリアル化されたルートシグネチャを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ID3D12VersionedRootSignatureDeserializer "{7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0}"
#usecom global ID3D12VersionedRootSignatureDeserializer IID_ID3D12VersionedRootSignatureDeserializer "{}"
#comfunc global ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion    3 int,var
#comfunc global ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc  4
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。