ホーム › Graphics.Direct3D12 › ID3D12Device8
ID3D12Device8
COMメソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 68 D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo2(DWORD visibleMask, DWORD numResourceDescs, D3D12_RESOURCE_DESC1* pResourceDescs, D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1)
| visibleMask | DWORD | in | リソースを可視化するGPUノードを示すビットマスク。単一GPUでは0でよい。 |
| numResourceDescs | DWORD | in | pResourceDescs配列に含まれるリソース記述子の個数を指定する。 |
| pResourceDescs | D3D12_RESOURCE_DESC1* | in | 割り当て情報を求める対象リソース記述子(拡張版)の配列。 |
| pResourceAllocationInfo1 | D3D12_RESOURCE_ALLOCATION_INFO1* | outoptional | 各リソースの個別割り当て情報を受け取る出力配列。 |
vtbl 69 HRESULT CreateCommittedResource2(D3D12_HEAP_PROPERTIES* pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, D3D12_RESOURCE_DESC1* 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_DESC1* | 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 | 生成されたリソースを受け取る出力ポインタ。 |
vtbl 70 HRESULT CreatePlacedResource1(ID3D12Heap* pHeap, ULONGLONG HeapOffset, D3D12_RESOURCE_DESC1* pDesc, D3D12_RESOURCE_STATES InitialState, D3D12_CLEAR_VALUE* pOptimizedClearValue, GUID* riid, void** ppvResource)
| pHeap | ID3D12Heap* | in | リソースを配置する対象の既存ヒープ。 |
| HeapOffset | ULONGLONG | in | ヒープ内のリソース配置オフセットをバイト単位で指定する。 |
| pDesc | D3D12_RESOURCE_DESC1* | in | 作成するリソースの拡張記述子。 |
| InitialState | D3D12_RESOURCE_STATES | in | リソースの初期状態を示すステートフラグ。 |
| pOptimizedClearValue | D3D12_CLEAR_VALUE* | inoptional | クリア最適化値。レンダーターゲットや深度以外ではNULL可。 |
| riid | GUID* | in | 取得するインターフェイスのGUID。通常はID3D12ResourceのIIDを指定する。 |
| ppvResource | void** | outoptional | 生成されたリソースを受け取る出力ポインタ。 |
vtbl 71 void CreateSamplerFeedbackUnorderedAccessView(ID3D12Resource* pTargetedResource, ID3D12Resource* pFeedbackResource, D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor)
| pTargetedResource | ID3D12Resource* | inoptional | サンプラーフィードバックの対象となる元テクスチャリソース。NULL可。 |
| pFeedbackResource | ID3D12Resource* | inoptional | フィードバック結果を書き込む対象のフィードバックマップリソース。 |
| DestDescriptor | D3D12_CPU_DESCRIPTOR_HANDLE | in | UAVを書き込む先のCPUディスクリプタハンドル。 |
vtbl 72 void GetCopyableFootprints1(D3D12_RESOURCE_DESC1* pResourceDesc, DWORD FirstSubresource, DWORD NumSubresources, ULONGLONG BaseOffset, D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, DWORD* pNumRows, ULONGLONG* pRowSizeInBytes, ULONGLONG* pTotalBytes)
| pResourceDesc | D3D12_RESOURCE_DESC1* | in | コピー用フットプリントを計算する対象リソースの拡張記述子。 |
| FirstSubresource | DWORD | in | 計算対象とする最初のサブリソースのインデックス。 |
| NumSubresources | DWORD | in | 計算対象とするサブリソースの個数。 |
| BaseOffset | ULONGLONG | in | 計算の基準とするバッファ先頭からのバイトオフセット。 |
| pLayouts | D3D12_PLACED_SUBRESOURCE_FOOTPRINT* | outoptional | 各サブリソースの配置フットプリントを受け取る出力配列。NULL可。 |
| pNumRows | DWORD* | outoptional | 各サブリソースの行数を受け取る出力配列。NULL可。 |
| pRowSizeInBytes | ULONGLONG* | outoptional | 各サブリソースの1行あたりのバイトサイズを受け取る出力配列。NULL可。 |
| pTotalBytes | ULONGLONG* | outoptional | 全サブリソースの合計バイトサイズを受け取る出力。NULL可。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ID3D12Device8 "{9218E6BB-F944-4F7E-A75C-B1B2C7B701F3}" #usecom global ID3D12Device8 IID_ID3D12Device8 "{}" #comfunc global ID3D12Device8_GetResourceAllocationInfo2 68 int,int,var,var #comfunc global ID3D12Device8_CreateCommittedResource2 69 var,int,var,int,var,sptr,var,sptr #comfunc global ID3D12Device8_CreatePlacedResource1 70 sptr,int64,var,int,var,var,sptr #comfunc global ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView 71 sptr,sptr,int #comfunc global ID3D12Device8_GetCopyableFootprints1 72 var,int,int,int64,var,var,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ID3D12Device8 "{9218E6BB-F944-4F7E-A75C-B1B2C7B701F3}" #usecom global ID3D12Device8 IID_ID3D12Device8 "{}" #comfunc global ID3D12Device8_GetResourceAllocationInfo2 68 int,int,sptr,sptr #comfunc global ID3D12Device8_CreateCommittedResource2 69 sptr,int,sptr,int,sptr,sptr,sptr,sptr #comfunc global ID3D12Device8_CreatePlacedResource1 70 sptr,int64,sptr,int,sptr,sptr,sptr #comfunc global ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView 71 sptr,sptr,int #comfunc global ID3D12Device8_GetCopyableFootprints1 72 sptr,int,int,int64,sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。