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

ID3D12Compiler

COM
IID8c403c12-993b-4583-80f1-6824138fa68e継承元ID3D12CompilerFactoryChild自前メソッド開始 vtbl4

メソッド 4

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

vtbl 4 HRESULT CompilePipelineState(D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, DWORD GroupVersion, D3D12_PIPELINE_STATE_STREAM_DESC* pDesc)
pGroupKeyD3D12_COMPILER_CACHE_GROUP_KEY*in結果を格納するキャッシュグループを識別するキーへのポインタ。
GroupVersionDWORDinキャッシュグループのバージョン番号を示すDWORD。
pDescD3D12_PIPELINE_STATE_STREAM_DESC*inコンパイルするパイプラインステートを記述するD3D12_PIPELINE_STATE_STREAM_DESCへのポインタ。
vtbl 5 HRESULT CompileStateObject(D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, DWORD GroupVersion, D3D12_STATE_OBJECT_DESC* pDesc, GUID* riid, void** ppCompilerStateObject)
pGroupKeyD3D12_COMPILER_CACHE_GROUP_KEY*in結果を格納するキャッシュグループを識別するキーへのポインタ。
GroupVersionDWORDinキャッシュグループのバージョン番号を示すDWORD。
pDescD3D12_STATE_OBJECT_DESC*inコンパイルするステートオブジェクトを記述するD3D12_STATE_OBJECT_DESCへのポインタ。
riidGUID*in取得するコンパイル済みステートオブジェクトインターフェイスのGUIDへのポインタ。
ppCompilerStateObjectvoid**out生成されたコンパイラステートオブジェクトのポインタを受け取る出力。
vtbl 6 HRESULT CompileAddToStateObject(D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, DWORD GroupVersion, D3D12_STATE_OBJECT_DESC* pAddition, ID3D12CompilerStateObject* pCompilerStateObjectToGrowFrom, GUID* riid, void** ppNewCompilerStateObject)
pGroupKeyD3D12_COMPILER_CACHE_GROUP_KEY*in結果を格納するキャッシュグループを識別するキーへのポインタ。
GroupVersionDWORDinキャッシュグループのバージョン番号を示すDWORD。
pAdditionD3D12_STATE_OBJECT_DESC*in既存オブジェクトへ追加する内容を記述するD3D12_STATE_OBJECT_DESCへのポインタ。
pCompilerStateObjectToGrowFromID3D12CompilerStateObject*in拡張の基となる既存コンパイラステートオブジェクトへのポインタ。
riidGUID*in取得する新しいステートオブジェクトインターフェイスのGUIDへのポインタ。
ppNewCompilerStateObjectvoid**out拡張生成された新ステートオブジェクトのポインタを受け取る出力。
vtbl 7 HRESULT GetCacheSession(GUID* riid, void** ppCompilerCacheSession)
riidGUID*in取得するキャッシュセッションインターフェイスのGUIDへのポインタ。
ppCompilerCacheSessionvoid**out関連付けられたコンパイラキャッシュセッションのポインタを受け取る出力。

HSP用 COM定義

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

出力引数:
#define global IID_ID3D12Compiler "{8C403C12-993B-4583-80F1-6824138FA68E}"
#usecom global ID3D12Compiler IID_ID3D12Compiler "{}"
#comfunc global ID3D12Compiler_CompilePipelineState     4 var,int,var
#comfunc global ID3D12Compiler_CompileStateObject       5 var,int,var,var,sptr
#comfunc global ID3D12Compiler_CompileAddToStateObject  6 var,int,var,sptr,var,sptr
#comfunc global ID3D12Compiler_GetCacheSession          7 var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。