ホーム › Graphics.Direct3D12 › ID3D12CommandQueue
ID3D12CommandQueue
COMメソッド 11
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 8 void UpdateTileMappings(ID3D12Resource* pResource, DWORD NumResourceRegions, D3D12_TILED_RESOURCE_COORDINATE* pResourceRegionStartCoordinates, D3D12_TILE_REGION_SIZE* pResourceRegionSizes, ID3D12Heap* pHeap, DWORD NumRanges, D3D12_TILE_RANGE_FLAGS* pRangeFlags, DWORD* pHeapRangeStartOffsets, DWORD* pRangeTileCounts, D3D12_TILE_MAPPING_FLAGS Flags)
| pResource | ID3D12Resource* | in | タイルマッピングを更新する対象のタイル化リソースを指す。 |
| NumResourceRegions | DWORD | in | リソース側のタイル領域の数を指定する。 |
| pResourceRegionStartCoordinates | D3D12_TILED_RESOURCE_COORDINATE* | inoptional | 各リソース領域の開始座標配列を指す。NULL可。 |
| pResourceRegionSizes | D3D12_TILE_REGION_SIZE* | inoptional | 各リソース領域のサイズ配列を指す。NULL可。 |
| pHeap | ID3D12Heap* | inoptional | タイルをマッピングするヒープを指す。NULLマッピングならNULL可。 |
| NumRanges | DWORD | in | ヒープ側の範囲の数を指定する。 |
| pRangeFlags | D3D12_TILE_RANGE_FLAGS* | inoptional | 各範囲の動作を示すD3D12_TILE_RANGE_FLAGS配列を指す。NULL可。 |
| pHeapRangeStartOffsets | DWORD* | inoptional | 各範囲のヒープ内開始タイルオフセット配列を指す。NULL可。 |
| pRangeTileCounts | DWORD* | inoptional | 各範囲のタイル数配列を指す。NULL可。 |
| Flags | D3D12_TILE_MAPPING_FLAGS | in | 更新全体の動作を示すD3D12_TILE_MAPPING_FLAGSを指定する。 |
vtbl 9 void CopyTileMappings(ID3D12Resource* pDstResource, D3D12_TILED_RESOURCE_COORDINATE* pDstRegionStartCoordinate, ID3D12Resource* pSrcResource, D3D12_TILED_RESOURCE_COORDINATE* pSrcRegionStartCoordinate, D3D12_TILE_REGION_SIZE* pRegionSize, D3D12_TILE_MAPPING_FLAGS Flags)
| pDstResource | ID3D12Resource* | in | マッピングのコピー先タイル化リソースを指す。 |
| pDstRegionStartCoordinate | D3D12_TILED_RESOURCE_COORDINATE* | in | コピー先領域の開始座標を指す。 |
| pSrcResource | ID3D12Resource* | in | マッピングのコピー元タイル化リソースを指す。 |
| pSrcRegionStartCoordinate | D3D12_TILED_RESOURCE_COORDINATE* | in | コピー元領域の開始座標を指す。 |
| pRegionSize | D3D12_TILE_REGION_SIZE* | in | コピーするタイル領域のサイズを示すD3D12_TILE_REGION_SIZEを指す。 |
| Flags | D3D12_TILE_MAPPING_FLAGS | in | コピー動作を示すD3D12_TILE_MAPPING_FLAGSを指定する。 |
vtbl 10 void ExecuteCommandLists(DWORD NumCommandLists, ID3D12CommandList** ppCommandLists)
| NumCommandLists | DWORD | in | 実行するコマンドリストの数を指定する。 |
| ppCommandLists | ID3D12CommandList** | in | 実行するID3D12CommandListの配列を指す。配列順に実行される。 |
| Metadata | DWORD | in | マーカーデータの解釈方法を示すメタデータ値を指定する。 |
| pData | void* | inoptional | マーカーに付随するデータを指す。 |
| Size | DWORD | in | pDataが指すデータのサイズをバイト単位で指定する。 |
| Metadata | DWORD | in | イベントデータの解釈方法を示すメタデータ値を指定する。 |
| pData | void* | inoptional | イベントに付随するデータ(通常は名前)を指す。 |
| Size | DWORD | in | pDataが指すデータのサイズをバイト単位で指定する。 |
vtbl 13 void EndEvent()
vtbl 14 HRESULT Signal(ID3D12Fence* pFence, ULONGLONG Value)
| pFence | ID3D12Fence* | in | GPUのキュー実行完了時にシグナルする対象のフェンスを指す。 |
| Value | ULONGLONG | in | フェンスに設定する64ビット値を指定する。 |
vtbl 15 HRESULT Wait(ID3D12Fence* pFence, ULONGLONG Value)
| pFence | ID3D12Fence* | in | 待機する対象のフェンスを指す。 |
| Value | ULONGLONG | in | フェンスがこの64ビット値以上になるまでキューの実行を待機させる。 |
| pFrequency | ULONGLONG* | out | GPUタイムスタンプの1秒あたりのカウント数(周波数)を受け取る出力ポインタ。 |
| pGpuTimestamp | ULONGLONG* | out | 同時刻のGPUタイムスタンプ値を受け取る出力ポインタ。 |
| pCpuTimestamp | ULONGLONG* | out | 同時刻のCPUタイムスタンプ値を受け取る出力ポインタ。 |
vtbl 18 D3D12_COMMAND_QUEUE_DESC GetDesc()
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ID3D12CommandQueue "{0EC870A6-5D7E-4C22-8CFC-5BAAE07616ED}" #usecom global ID3D12CommandQueue IID_ID3D12CommandQueue "{}" #comfunc global ID3D12CommandQueue_UpdateTileMappings 8 sptr,int,var,var,sptr,int,var,var,var,int #comfunc global ID3D12CommandQueue_CopyTileMappings 9 sptr,var,sptr,var,var,int #comfunc global ID3D12CommandQueue_ExecuteCommandLists 10 int,sptr #comfunc global ID3D12CommandQueue_SetMarker 11 int,sptr,int #comfunc global ID3D12CommandQueue_BeginEvent 12 int,sptr,int #comfunc global ID3D12CommandQueue_EndEvent 13 #comfunc global ID3D12CommandQueue_Signal 14 sptr,int64 #comfunc global ID3D12CommandQueue_Wait 15 sptr,int64 #comfunc global ID3D12CommandQueue_GetTimestampFrequency 16 var #comfunc global ID3D12CommandQueue_GetClockCalibration 17 var,var #comfunc global ID3D12CommandQueue_GetDesc 18 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ID3D12CommandQueue "{0EC870A6-5D7E-4C22-8CFC-5BAAE07616ED}" #usecom global ID3D12CommandQueue IID_ID3D12CommandQueue "{}" #comfunc global ID3D12CommandQueue_UpdateTileMappings 8 sptr,int,sptr,sptr,sptr,int,sptr,sptr,sptr,int #comfunc global ID3D12CommandQueue_CopyTileMappings 9 sptr,sptr,sptr,sptr,sptr,int #comfunc global ID3D12CommandQueue_ExecuteCommandLists 10 int,sptr #comfunc global ID3D12CommandQueue_SetMarker 11 int,sptr,int #comfunc global ID3D12CommandQueue_BeginEvent 12 int,sptr,int #comfunc global ID3D12CommandQueue_EndEvent 13 #comfunc global ID3D12CommandQueue_Signal 14 sptr,int64 #comfunc global ID3D12CommandQueue_Wait 15 sptr,int64 #comfunc global ID3D12CommandQueue_GetTimestampFrequency 16 sptr #comfunc global ID3D12CommandQueue_GetClockCalibration 17 sptr,sptr #comfunc global ID3D12CommandQueue_GetDesc 18 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。