ホーム › Graphics.Direct3D12 › ID3D12Device4
ID3D12Device4
COMメソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 51 HRESULT CreateCommandList1(DWORD nodeMask, D3D12_COMMAND_LIST_TYPE type, D3D12_COMMAND_LIST_FLAGS flags, GUID* riid, void** ppCommandList)
| nodeMask | DWORD | in | コマンドリストが属するGPUノードを示すビットマスク。単一GPUでは0でよい。 |
| type | D3D12_COMMAND_LIST_TYPE | in | 作成するコマンドリストの種別。DIRECT/BUNDLE/COMPUTE/COPYなどを指定する。 |
| flags | D3D12_COMMAND_LIST_FLAGS | in | コマンドリスト作成時の挙動を制御するフラグ。 |
| riid | GUID* | in | 取得するインターフェイスのGUID。通常はID3D12GraphicsCommandListのIIDを指定する。 |
| ppCommandList | void** | out | クローズ状態で生成されたコマンドリストを受け取る出力ポインタ。 |
vtbl 52 HRESULT CreateProtectedResourceSession(D3D12_PROTECTED_RESOURCE_SESSION_DESC* pDesc, GUID* riid, void** ppSession)
| pDesc | D3D12_PROTECTED_RESOURCE_SESSION_DESC* | in | 作成する保護リソースセッションの記述子。保護種別やノードマスクを指定する。 |
| riid | GUID* | in | 取得するインターフェイスのGUID。通常はID3D12ProtectedResourceSessionのIIDを指定する。 |
| ppSession | void** | out | 生成された保護リソースセッションを受け取る出力ポインタ。 |
vtbl 53 HRESULT CreateCommittedResource1(D3D12_HEAP_PROPERTIES* pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, D3D12_RESOURCE_DESC* pDesc, D3D12_RESOURCE_STATES InitialResourceState, D3D12_CLEAR_VALUE* pOptimizedClearValue, ID3D12ProtectedResourceSession* pProtectedSession, GUID* riidResource, void** ppvResource)
| pHeapProperties | D3D12_HEAP_PROPERTIES* | in | リソース用に確保するヒープのプロパティ。ヒープ種別やメモリプールを指定する。 |
| HeapFlags | D3D12_HEAP_FLAGS | in | ヒープ作成時の属性を制御するフラグ。 |
| pDesc | D3D12_RESOURCE_DESC* | in | 作成するリソースの記述子。次元やフォーマット、サイズ等を指定する。 |
| InitialResourceState | D3D12_RESOURCE_STATES | in | リソースの初期状態を示すステートフラグ。最初の使用方法に合わせる。 |
| pOptimizedClearValue | D3D12_CLEAR_VALUE* | inoptional | クリア最適化値。レンダーターゲットや深度以外ではNULL可。 |
| pProtectedSession | ID3D12ProtectedResourceSession* | inoptional | リソースを関連付ける保護リソースセッション。非保護時はNULL可。 |
| riidResource | GUID* | in | 取得するインターフェイスのGUID。通常はID3D12ResourceのIIDを指定する。 |
| ppvResource | void** | outoptional | 生成されたリソースを受け取る出力ポインタ。riidResourceの型で返る。 |
vtbl 54 HRESULT CreateHeap1(D3D12_HEAP_DESC* pDesc, ID3D12ProtectedResourceSession* pProtectedSession, GUID* riid, void** ppvHeap)
| pDesc | D3D12_HEAP_DESC* | in | 作成するヒープの記述子。サイズやアライメント、プロパティを指定する。 |
| pProtectedSession | ID3D12ProtectedResourceSession* | inoptional | ヒープを関連付ける保護リソースセッション。非保護時はNULL可。 |
| riid | GUID* | in | 取得するインターフェイスのGUID。通常はID3D12HeapのIIDを指定する。 |
| ppvHeap | void** | outoptional | 生成されたヒープを受け取る出力ポインタ。riidの型で返る。 |
vtbl 55 HRESULT CreateReservedResource1(D3D12_RESOURCE_DESC* pDesc, D3D12_RESOURCE_STATES InitialState, D3D12_CLEAR_VALUE* pOptimizedClearValue, ID3D12ProtectedResourceSession* pProtectedSession, GUID* riid, void** ppvResource)
| pDesc | D3D12_RESOURCE_DESC* | in | 作成する予約(タイル)リソースの記述子。仮想アドレス空間のみ確保される。 |
| InitialState | D3D12_RESOURCE_STATES | in | リソースの初期状態を示すステートフラグ。 |
| pOptimizedClearValue | D3D12_CLEAR_VALUE* | inoptional | クリア最適化値。レンダーターゲットや深度以外ではNULL可。 |
| pProtectedSession | ID3D12ProtectedResourceSession* | inoptional | リソースを関連付ける保護リソースセッション。非保護時はNULL可。 |
| riid | GUID* | in | 取得するインターフェイスのGUID。通常はID3D12ResourceのIIDを指定する。 |
| ppvResource | void** | outoptional | 生成された予約リソースを受け取る出力ポインタ。riidの型で返る。 |
vtbl 56 D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo1(DWORD visibleMask, DWORD numResourceDescs, D3D12_RESOURCE_DESC* pResourceDescs, D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1)
| visibleMask | DWORD | in | リソースを可視化するGPUノードを示すビットマスク。単一GPUでは0でよい。 |
| numResourceDescs | DWORD | in | pResourceDescs配列に含まれるリソース記述子の個数を指定する。 |
| pResourceDescs | D3D12_RESOURCE_DESC* | in | 割り当て情報を求める対象リソース記述子の配列。 |
| pResourceAllocationInfo1 | D3D12_RESOURCE_ALLOCATION_INFO1* | outoptional | 各リソースの個別割り当て情報(オフセット・サイズ等)を受け取る出力配列。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ID3D12Device4 "{E865DF17-A9EE-46F9-A463-3098315AA2E5}" #usecom global ID3D12Device4 IID_ID3D12Device4 "{}" #comfunc global ID3D12Device4_CreateCommandList1 51 int,int,int,var,sptr #comfunc global ID3D12Device4_CreateProtectedResourceSession 52 var,var,sptr #comfunc global ID3D12Device4_CreateCommittedResource1 53 var,int,var,int,var,sptr,var,sptr #comfunc global ID3D12Device4_CreateHeap1 54 var,sptr,var,sptr #comfunc global ID3D12Device4_CreateReservedResource1 55 var,int,var,sptr,var,sptr #comfunc global ID3D12Device4_GetResourceAllocationInfo1 56 int,int,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ID3D12Device4 "{E865DF17-A9EE-46F9-A463-3098315AA2E5}" #usecom global ID3D12Device4 IID_ID3D12Device4 "{}" #comfunc global ID3D12Device4_CreateCommandList1 51 int,int,int,sptr,sptr #comfunc global ID3D12Device4_CreateProtectedResourceSession 52 sptr,sptr,sptr #comfunc global ID3D12Device4_CreateCommittedResource1 53 sptr,int,sptr,int,sptr,sptr,sptr,sptr #comfunc global ID3D12Device4_CreateHeap1 54 sptr,sptr,sptr,sptr #comfunc global ID3D12Device4_CreateReservedResource1 55 sptr,int,sptr,sptr,sptr,sptr #comfunc global ID3D12Device4_GetResourceAllocationInfo1 56 int,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。