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

ID3D12Resource

COM
IID696442be-a72e-4059-bc79-5b5c98040fad継承元ID3D12Pageable自前メソッド開始 vtbl8

メソッド 7

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

vtbl 8 HRESULT Map(DWORD Subresource, D3D12_RANGE* pReadRange, void** ppData)
SubresourceDWORDinマップするサブリソースのインデックスを指定する。
pReadRangeD3D12_RANGE*inoptionalCPUが読み取る範囲を示すD3D12_RANGEを指す。読み取らないならNULL可。
ppDatavoid**outoptionalマップされたメモリの先頭アドレスを受け取る出力ポインタ。NULL可。
vtbl 9 void Unmap(DWORD Subresource, D3D12_RANGE* pWrittenRange)
SubresourceDWORDinアンマップするサブリソースのインデックスを指定する。
pWrittenRangeD3D12_RANGE*inoptionalCPUが書き込んだ範囲を示すD3D12_RANGEを指す。全範囲ならNULL可。
vtbl 10 D3D12_RESOURCE_DESC GetDesc()
vtbl 11 ULONGLONG GetGPUVirtualAddress()
vtbl 12 HRESULT WriteToSubresource(DWORD DstSubresource, D3D12_BOX* pDstBox, void* pSrcData, DWORD SrcRowPitch, DWORD SrcDepthPitch)
DstSubresourceDWORDin書き込み先サブリソースのインデックスを指定する。
pDstBoxD3D12_BOX*inoptional書き込む対象領域を示すD3D12_BOXを指す。リソース全体ならNULL可。
pSrcDatavoid*in書き込むソースデータの先頭ポインタ。
SrcRowPitchDWORDinソースデータの1行あたりのバイト数を指定する。
SrcDepthPitchDWORDinソースデータの1スライスあたりのバイト数を指定する。
vtbl 13 HRESULT ReadFromSubresource(void* pDstData, DWORD DstRowPitch, DWORD DstDepthPitch, DWORD SrcSubresource, D3D12_BOX* pSrcBox)
pDstDatavoid*out読み取り結果を格納する受け側バッファの先頭ポインタ。
DstRowPitchDWORDin受け側バッファの1行あたりのバイト数を指定する。
DstDepthPitchDWORDin受け側バッファの1スライスあたりのバイト数を指定する。
SrcSubresourceDWORDin読み取り元サブリソースのインデックスを指定する。
pSrcBoxD3D12_BOX*inoptional読み取る対象領域を示すD3D12_BOXを指す。リソース全体ならNULL可。
vtbl 14 HRESULT GetHeapProperties(D3D12_HEAP_PROPERTIES* pHeapProperties, D3D12_HEAP_FLAGS* pHeapFlags)
pHeapPropertiesD3D12_HEAP_PROPERTIES*outoptionalこのリソースが属するヒープのプロパティを受け取る出力ポインタ。NULL可。
pHeapFlagsD3D12_HEAP_FLAGS*outoptionalヒープのフラグを受け取るD3D12_HEAP_FLAGS出力ポインタ。NULL可。

HSP用 COM定義

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

出力引数:
#define global IID_ID3D12Resource "{696442BE-A72E-4059-BC79-5B5C98040FAD}"
#usecom global ID3D12Resource IID_ID3D12Resource "{}"
#comfunc global ID3D12Resource_Map                   8 int,var,sptr
#comfunc global ID3D12Resource_Unmap                 9 int,var
#comfunc global ID3D12Resource_GetDesc               10
#comfunc global ID3D12Resource_GetGPUVirtualAddress  11
#comfunc global ID3D12Resource_WriteToSubresource    12 int,var,sptr,int,int
#comfunc global ID3D12Resource_ReadFromSubresource   13 sptr,int,int,int,var
#comfunc global ID3D12Resource_GetHeapProperties     14 var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。