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

ID3D12PipelineLibrary1

COM
IID80eabf42-2568-4e5e-bd82-c37f86961dc3継承元ID3D12PipelineLibrary自前メソッド開始 vtbl13

公式ドキュメント

パイプラインライブラリを管理します。このインターフェイスは ID3D12PipelineLibrary を拡張し、パイプラインステートストリームの記述から PSO を読み込めるようにします。

メソッド 1

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

vtbl 13 HRESULT LoadPipeline(LPWSTR pName, D3D12_PIPELINE_STATE_STREAM_DESC* pDesc, GUID* riid, void** ppPipelineState)

要求された PSO をライブラリから取得します。パイプラインストリームの記述はライブラリのデータベースと照合され、PSO の内容が重複しないように記憶されます。

pNameLPWSTRin

SAL: In

PSO の一意な名前です。

pDescD3D12_PIPELINE_STATE_STREAM_DESC*in

SAL: In

必要な PSO を D3D12_PIPELINE_STATE_STREAM_DESC 構造体で記述します。この記述はライブラリのデータベースと照合され、PSO の内容が重複しないように保存されます。

riidGUID*in

ID3D12PipelineState オブジェクトの REFIID を指定します。

通常、アプリではこの引数と次の引数 ppPipelineState を、マクロ IID_PPV_ARGS(&PSO1) を使用して設定します(PSO1 はオブジェクトの名前です)。

ppPipelineStatevoid**out

SAL: COM_Outptr

関数が正常に終了した後に PSO を参照するポインターを指定します。

戻り値

型: HRESULT

このメソッドは HRESULT の成功コードまたはエラーコードを返します。名前が存在しない場合やストリームの記述がライブラリ内のデータと一致しない場合は E_INVALIDARG、結果として生成される PSO を割り当てられない場合は E_OUTOFMEMORY が返されることがあります。

解説(Remarks)

この関数はパイプラインの記述を D3D12_PIPELINE_STATE_STREAM_DESC として受け取り、ID3D12PipelineLibrary::LoadGraphicsPipeline および ID3D12PipelineLibrary::LoadComputePipeline 関数の代替となります。これらの関数は、それぞれ柔軟性の低い D3D12_GRAPHICS_PIPELINE_STATE_DESC 構造体と D3D12_COMPUTE_PIPELINE_STATE_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_ID3D12PipelineLibrary1 "{80EABF42-2568-4E5E-BD82-C37F86961DC3}"
#usecom global ID3D12PipelineLibrary1 IID_ID3D12PipelineLibrary1 "{}"
#comfunc global ID3D12PipelineLibrary1_LoadPipeline  13 wstr,var,var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。