ID3DX11Scan
COM公式ドキュメント
スキャンコンテキストです。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
スキャンを実行する方向を設定します。(ID3DX11Scan.SetScanDirection)
| Direction | D3DX11_SCAN_DIRECTION | in | スキャンを実行する方向です。D3DX11_SCAN_DIRECTION を参照してください。 |
戻り値
型: HRESULT
Direct3D 11 のリターンコードのトピックで説明されているリターンコードのいずれかを返します。
解説(Remarks)
SetScanDirection は、ID3DX11Scan::Scan および ID3DX11Scan::Multiscan がスキャンを実行する方向を設定します。
シーケンスの非分割スキャンを実行します。
| ElementType | D3DX11_SCAN_DATA_TYPE | in | シーケンス内の要素の型です。詳細については、D3DX11_SCAN_DATA_TYPE を参照してください。 |
| OpCode | D3DX11_SCAN_OPCODE | in | 実行する二項演算です。詳細については、D3DX11_SCAN_OPCODE を参照してください。 |
| ElementScanSize | DWORD | in | スキャンのサイズ(要素数)です。 |
| pSrc | ID3D11UnorderedAccessView* | in | デバイス上の入力シーケンスです。インプレースでスキャンする場合は、pSrc と pDst に同じ値を設定します。 |
| pDst | ID3D11UnorderedAccessView* | in | デバイス上の出力シーケンスです。 |
戻り値
型: HRESULT
Direct3D 11 のリターンコードのトピックで説明されているリターンコードのいずれかを返します。
解説(Remarks)
パラメーター pSrc と pDst は、型付きバッファー(raw バッファーや構造化バッファーではなく)を指す必要があります。バッファーの種類については、リソースの種類を参照してください。これらの型付きバッファーのフォーマットは、DXGI_FORMAT_R32_FLOAT、DXGI_FORMAT_R32_UINT、または DXGI_FORMAT_R32_INT のいずれかでなければなりません。さらに、これらの型付きバッファーのフォーマットは、ElementType パラメーターに指定するスキャンデータ型と一致している必要があります。たとえば、スキャンデータ型が D3DX11_SCAN_DATA_TYPE_UINT の場合、バッファーのフォーマットは DXGI_FORMAT_R32_UINT でなければなりません。
シーケンスのマルチスキャンを実行します。
| ElementType | D3DX11_SCAN_DATA_TYPE | in | シーケンス内の要素の型です。詳細については、D3DX11_SCAN_DATA_TYPE を参照してください。 |
| OpCode | D3DX11_SCAN_OPCODE | in | 実行する二項演算です。詳細については、D3DX11_SCAN_OPCODE を参照してください。 |
| ElementScanSize | DWORD | in | スキャンのサイズ(要素数)です。 |
| ElementScanPitch | DWORD | in | 次のスキャンまでのピッチ(要素数)です。 |
| ScanCount | DWORD | in | マルチスキャン内のスキャン数です。 |
| pSrc | ID3D11UnorderedAccessView* | in | デバイス上の入力シーケンスです。インプレースでスキャンする場合は、pSrc と pDst に同じ値を設定します。 |
| pDst | ID3D11UnorderedAccessView* | in | デバイス上の出力シーケンスです。 |
戻り値
型: HRESULT
Direct3D 11 のリターンコードのトピックで説明されているリターンコードのいずれかを返します。
解説(Remarks)
パラメーター pSrc と pDst は、型付きバッファー(raw バッファーや構造化バッファーではなく)を指す必要があります。バッファーの種類については、リソースの種類を参照してください。これらの型付きバッファーのフォーマットは、DXGI_FORMAT_R32_FLOAT、DXGI_FORMAT_R32_UINT、または DXGI_FORMAT_R32_INT のいずれかでなければなりません。さらに、これらの型付きバッファーのフォーマットは、ElementType パラメーターに指定するスキャンデータ型と一致している必要があります。たとえば、スキャンデータ型が D3DX11_SCAN_DATA_TYPE_UINT の場合、バッファーのフォーマットは DXGI_FORMAT_R32_UINT でなければなりません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ID3DX11Scan "{5089B68F-E71D-4D38-BE8E-F363B95A9405}"
#usecom global ID3DX11Scan IID_ID3DX11Scan "{}"
#comfunc global ID3DX11Scan_SetScanDirection 3 int
#comfunc global ID3DX11Scan_Scan 4 int,int,int,sptr,sptr
#comfunc global ID3DX11Scan_Multiscan 5 int,int,int,int,int,sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。