ホーム › Graphics.Direct2D › ID2D1ComputeInfo
ID2D1ComputeInfo
COM公式ドキュメント
コンピュートシェーダーによるレンダリングパスの情報を指定できるようにします。
解説(Remarks)
トランスフォームは、このレンダリング情報の状態を変更して、コンピュートシェーダーとその依存リソースを指定します。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
このトランスフォームの定数バッファデータを設定または変更します。
| buffer | BYTE* | in | 定数バッファに適用するデータ。 |
| bufferCount | DWORD | in | 定数バッファ内のデータのバイト数。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
vtbl 8 HRESULT SetComputeShader(GUID* shaderId)
指定されたシェーダーリソースにコンピュートシェーダーを設定します。この呼び出しを行う前に、リソースを読み込んでおく必要があります。
| shaderId | GUID* | in | シェーダーの GUID。 |
戻り値
型: HRESULT
このメソッドは HRESULT を返します。指定できる値には次の表に示すものが含まれますが、これらに限定されません。
| HRESULT | 説明 |
|---|---|
| S_OK | エラーは発生しませんでした。 |
| E_OUTOFMEMORY | Direct2D が呼び出しを完了するのに十分なメモリを割り当てられませんでした。 |
| E_INVALIDARG | 戻り値を返す関数に無効なパラメーターが渡されました。 |
vtbl 9 HRESULT SetResourceTexture(DWORD textureIndex, ID2D1ResourceTexture* resourceTexture)
指定されたシェーダーテクスチャインデックスに対応するリソーステクスチャを、指定されたテクスチャリソースに設定します。
| textureIndex | DWORD | in | リソーステクスチャを設定するインデックス。 |
| resourceTexture | ID2D1ResourceTexture* | in | シェーダーテクスチャインデックスに設定するリソーステクスチャオブジェクト。 |
戻り値
型: HRESULT
このメソッドは HRESULT を返します。指定できる値には次の表に示すものが含まれますが、これらに限定されません。
| HRESULT | 説明 |
|---|---|
| S_OK | エラーは発生しませんでした。 |
| E_OUTOFMEMORY | Direct2D が呼び出しを完了するのに十分なメモリを割り当てられませんでした。 |
| E_INVALIDARG | 戻り値を返す関数に無効なパラメーターが渡されました。 |
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ID2D1ComputeInfo "{5598B14B-9FD7-48B7-9BDB-8F0964EB38BC}" #usecom global ID2D1ComputeInfo IID_ID2D1ComputeInfo "{}" #comfunc global ID2D1ComputeInfo_SetComputeShaderConstantBuffer 7 var,int #comfunc global ID2D1ComputeInfo_SetComputeShader 8 var #comfunc global ID2D1ComputeInfo_SetResourceTexture 9 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ID2D1ComputeInfo "{5598B14B-9FD7-48B7-9BDB-8F0964EB38BC}" #usecom global ID2D1ComputeInfo IID_ID2D1ComputeInfo "{}" #comfunc global ID2D1ComputeInfo_SetComputeShaderConstantBuffer 7 sptr,int #comfunc global ID2D1ComputeInfo_SetComputeShader 8 sptr #comfunc global ID2D1ComputeInfo_SetResourceTexture 9 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。