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

ID3D12CompilerFactory

COM
IIDc1ee4b59-3f59-47a5-9b4e-a855c858a878継承元IUnknown自前メソッド開始 vtbl3

メソッド 6

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

vtbl 3 HRESULT EnumerateAdapterFamilies(DWORD AdapterFamilyIndex, D3D12_ADAPTER_FAMILY* pAdapterFamily)
AdapterFamilyIndexDWORDin列挙するアダプタファミリの0始まりのインデックス。
pAdapterFamilyD3D12_ADAPTER_FAMILY*outアダプタファミリ情報を受け取るD3D12_ADAPTER_FAMILY構造体へのポインタ。
vtbl 4 HRESULT EnumerateAdapterFamilyABIVersions(DWORD AdapterFamilyIndex, DWORD* pNumABIVersions, ULONGLONG* pABIVersions)
AdapterFamilyIndexDWORDin対象アダプタファミリの0始まりのインデックス。
pNumABIVersionsDWORD*inoutABIバージョン数の入出力。入力で配列容量、出力で実数を返すDWORDポインタ。
pABIVersionsULONGLONG*outoptionalABIバージョン番号を受け取るULONGLONG配列へのポインタ。NULLで個数のみ取得可。
vtbl 5 HRESULT EnumerateAdapterFamilyCompilerVersion(DWORD AdapterFamilyIndex, D3D12_VERSION_NUMBER* pCompilerVersion)
AdapterFamilyIndexDWORDin対象アダプタファミリの0始まりのインデックス。
pCompilerVersionD3D12_VERSION_NUMBER*outコンパイラのバージョン情報を受け取るD3D12_VERSION_NUMBERへのポインタ。
vtbl 6 HRESULT GetApplicationProfileVersion(D3D12_COMPILER_TARGET* pTarget, D3D12_APPLICATION_DESC* pApplicationDesc, D3D12_VERSION_NUMBER* pApplicationProfileVersion)
pTargetD3D12_COMPILER_TARGET*in対象とするコンパイルターゲットを記述するD3D12_COMPILER_TARGETへのポインタ。
pApplicationDescD3D12_APPLICATION_DESC*inアプリケーションを識別するD3D12_APPLICATION_DESCへのポインタ。
pApplicationProfileVersionD3D12_VERSION_NUMBER*out適用されるアプリケーションプロファイルのバージョンを受け取る出力。
vtbl 7 HRESULT CreateCompilerCacheSession(D3D12_COMPILER_DATABASE_PATH* pPaths, DWORD NumPaths, D3D12_COMPILER_TARGET* pTarget, D3D12_APPLICATION_DESC* pApplicationDesc, GUID* riid, void** ppCompilerCacheSession)
pPathsD3D12_COMPILER_DATABASE_PATH*inキャッシュデータベースの探索パスを示すD3D12_COMPILER_DATABASE_PATH配列ポインタ。
NumPathsDWORDinpPaths配列の要素数を示すDWORD。
pTargetD3D12_COMPILER_TARGET*inoptional対象コンパイルターゲットを記述するD3D12_COMPILER_TARGETへのポインタ。
pApplicationDescD3D12_APPLICATION_DESC*inoptionalアプリケーションを識別するD3D12_APPLICATION_DESCへのポインタ。NULL可。
riidGUID*in取得するキャッシュセッションインターフェイスのGUIDへのポインタ。
ppCompilerCacheSessionvoid**out生成されたキャッシュセッションのポインタを受け取る出力。
vtbl 8 HRESULT CreateCompiler(ID3D12CompilerCacheSession* pCompilerCacheSession, GUID* riid, void** ppCompiler)
pCompilerCacheSessionID3D12CompilerCacheSession*inコンパイラに関連付けるキャッシュセッションへのポインタ。
riidGUID*in取得するコンパイラインターフェイスのGUIDへのポインタ。
ppCompilervoid**out生成されたコンパイラインターフェイスのポインタを受け取る出力。

HSP用 COM定義

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

出力引数:
#define global IID_ID3D12CompilerFactory "{C1EE4B59-3F59-47A5-9B4E-A855C858A878}"
#usecom global ID3D12CompilerFactory IID_ID3D12CompilerFactory "{}"
#comfunc global ID3D12CompilerFactory_EnumerateAdapterFamilies               3 int,var
#comfunc global ID3D12CompilerFactory_EnumerateAdapterFamilyABIVersions      4 int,var,var
#comfunc global ID3D12CompilerFactory_EnumerateAdapterFamilyCompilerVersion  5 int,var
#comfunc global ID3D12CompilerFactory_GetApplicationProfileVersion           6 var,var,var
#comfunc global ID3D12CompilerFactory_CreateCompilerCacheSession             7 var,int,var,var,var,sptr
#comfunc global ID3D12CompilerFactory_CreateCompiler                         8 sptr,var,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。