ホーム › Graphics.Direct3D12 › ID3D12Device9
ID3D12Device9
COMメソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 73 HRESULT CreateShaderCacheSession(D3D12_SHADER_CACHE_SESSION_DESC* pDesc, GUID* riid, void** ppvSession)
| pDesc | D3D12_SHADER_CACHE_SESSION_DESC* | in | 作成するシェーダーキャッシュセッションの記述子。識別子やモードを指定する。 |
| riid | GUID* | in | 取得するインターフェイスのGUID。通常はID3D12ShaderCacheSessionのIIDを指定する。 |
| ppvSession | void** | outoptional | 生成されたシェーダーキャッシュセッションを受け取る出力ポインタ。NULL可。 |
vtbl 74 HRESULT ShaderCacheControl(D3D12_SHADER_CACHE_KIND_FLAGS Kinds, D3D12_SHADER_CACHE_CONTROL_FLAGS Control)
| Kinds | D3D12_SHADER_CACHE_KIND_FLAGS | in | 制御対象とするキャッシュの種類を示すフラグ(ドライバ・PSO等)。 |
| Control | D3D12_SHADER_CACHE_CONTROL_FLAGS | in | 対象キャッシュへ適用する制御操作(無効化・有効化・クリア等)を示すフラグ。 |
vtbl 75 HRESULT CreateCommandQueue1(D3D12_COMMAND_QUEUE_DESC* pDesc, GUID* CreatorID, GUID* riid, void** ppCommandQueue)
| pDesc | D3D12_COMMAND_QUEUE_DESC* | in | 作成するコマンドキューの記述子。種別や優先度を指定する。 |
| CreatorID | GUID* | in | キューの作成者を識別するGUID。同一識別子間でのみ共有を許可する。 |
| riid | GUID* | in | 取得するインターフェイスのGUID。通常はID3D12CommandQueueのIIDを指定する。 |
| ppCommandQueue | void** | out | 生成されたコマンドキューを受け取る出力ポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ID3D12Device9 "{4C80E962-F032-4F60-BC9E-EBC2CFA1D83C}" #usecom global ID3D12Device9 IID_ID3D12Device9 "{}" #comfunc global ID3D12Device9_CreateShaderCacheSession 73 var,var,sptr #comfunc global ID3D12Device9_ShaderCacheControl 74 int,int #comfunc global ID3D12Device9_CreateCommandQueue1 75 var,var,var,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ID3D12Device9 "{4C80E962-F032-4F60-BC9E-EBC2CFA1D83C}" #usecom global ID3D12Device9 IID_ID3D12Device9 "{}" #comfunc global ID3D12Device9_CreateShaderCacheSession 73 sptr,sptr,sptr #comfunc global ID3D12Device9_ShaderCacheControl 74 int,int #comfunc global ID3D12Device9_CreateCommandQueue1 75 sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。