ID3D10ShaderReflection1
COM公式ドキュメント
シェーダーリフレクションインターフェイスは、シェーダーの情報にアクセスします。(ID3D10ShaderReflection1)
解説(Remarks)
このインターフェイスには Windows Vista Service Pack 1 が必要です。
メソッド 15
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| pDesc | D3D10_SHADER_DESC* | out | シェーダー全体の記述を受け取る D3D10_SHADER_DESC 構造体へのポインタ。 |
| Index | DWORD | in | 取得する定数バッファを示すゼロ基点のインデックス。 |
| Name | LPSTR | in | 取得する定数バッファの名前を指す NULL 終端 ANSI 文字列。 |
| ResourceIndex | DWORD | in | バインドされたリソースを示すゼロ基点のインデックス。 |
| pDesc | D3D10_SHADER_INPUT_BIND_DESC* | out | リソースのバインド情報を受け取る D3D10_SHADER_INPUT_BIND_DESC 構造体へのポインタ。 |
| ParameterIndex | DWORD | in | 入力シグネチャ要素を示すゼロ基点のインデックス。 |
| pDesc | D3D10_SIGNATURE_PARAMETER_DESC* | out | 入力パラメータの記述を受け取る D3D10_SIGNATURE_PARAMETER_DESC 構造体へのポインタ。 |
| ParameterIndex | DWORD | in | 出力シグネチャ要素を示すゼロ基点のインデックス。 |
| pDesc | D3D10_SIGNATURE_PARAMETER_DESC* | out | 出力パラメータの記述を受け取る D3D10_SIGNATURE_PARAMETER_DESC 構造体へのポインタ。 |
変数を名前で取得します。(ID3D10ShaderReflection1.GetVariableByName)
| Name | LPSTR | in | 変数名を含む文字列へのポインター。 |
戻り値
型: ID3D10ShaderReflectionVariable*
ID3D10ShaderReflectionVariable インターフェイスインターフェイスを返します。
解説(Remarks)
このメソッドには Windows Vista Service Pack 1 が必要です。
リソースバインディングの記述を名前で取得します。
| Name | LPSTR | in | 変数名を含む文字列へのポインター。 |
| pDesc | D3D10_SHADER_INPUT_BIND_DESC* | out | リソースバインディング情報が格納される D3D10_SHADER_INPUT_BIND_DESC 構造体へのポインター。 |
戻り値
型: HRESULT
次の Direct3D 10 リターンコードのいずれかを返します。
解説(Remarks)
このメソッドには Windows Vista Service Pack 1 が必要です。
Mov 命令の数を取得します。(ID3D10ShaderReflection1.GetMovInstructionCount)
| pCount | DWORD* | out | Mov 命令の数へのポインター。 |
戻り値
型: HRESULT
次の Direct3D 10 リターンコードのいずれかを返します。
解説(Remarks)
このメソッドには Windows Vista Service Pack 1 が必要です。
Movc 命令の数を取得します。(ID3D10ShaderReflection1.GetMovcInstructionCount)
| pCount | DWORD* | out | Movc 命令の数へのポインター。 |
戻り値
型: HRESULT
次の Direct3D 10 リターンコードのいずれかを返します。
解説(Remarks)
このメソッドには Windows Vista Service Pack 1 が必要です。
シェーダーで使用される変換命令の数を取得します。
| pCount | DWORD* | out | メソッドが返るときに変換命令の数が格納される UINT へのポインター。 |
戻り値
型: HRESULT
次の Direct3D 10 リターンコードのいずれかを返します。
解説(Remarks)
このメソッドには Windows Vista Service Pack 1 が必要です。
ビット演算命令の数を取得します。(ID3D10ShaderReflection1.GetBitwiseInstructionCount)
| pCount | DWORD* | out | ビット演算命令の数へのポインター。 |
戻り値
型: HRESULT
次の Direct3D 10 リターンコードのいずれかを返します。
解説(Remarks)
このメソッドには Windows Vista Service Pack 1 が必要です。
ジオメトリシェーダーの入力プリミティブの記述を取得します。(ID3D10ShaderReflection1.GetGSInputPrimitive)
| pPrim | D3D_PRIMITIVE* | out | 入力プリミティブの種類へのポインター(D3D10_PRIMITIVE を参照)。 |
戻り値
型: HRESULT
次の Direct3D 10 リターンコードのいずれかを返します。
解説(Remarks)
このメソッドには Windows Vista Service Pack 1 が必要です。
シェーダーが Direct3D 9 モード上の Direct3D 10 でコンパイルされたかどうかを示します。
| pbLevel9Shader | BOOL* | out | シェーダーが Direct3D 9 モード上の Direct3D 10 でコンパイルされた場合は true、それ以外の場合は false に設定される BOOL 変数へのポインター。 |
戻り値
型: HRESULT
次の Direct3D 10 リターンコードのいずれかを返します。
解説(Remarks)
このメソッドには Windows Vista Service Pack 1 が必要です。
ピクセルシェーダーがピクセル単位で実行されることを意図しているか、サンプル単位で実行されることを意図しているかを示します。
| pbSampleFrequency | BOOL* | out | シェーダーがサンプル単位で実行されることを意図している場合は true、それ以外の場合は false に設定される BOOL 変数へのポインター。 |
戻り値
型: HRESULT
次の Direct3D 10 リターンコードのいずれかを返します。
解説(Remarks)
このメソッドには Windows Vista Service Pack 1 が必要です。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ID3D10ShaderReflection1 "{C3457783-A846-47CE-9520-CEA6F66E7447}" #usecom global ID3D10ShaderReflection1 IID_ID3D10ShaderReflection1 "{}" #comfunc global ID3D10ShaderReflection1_GetDesc 3 var #comfunc global ID3D10ShaderReflection1_GetConstantBufferByIndex 4 int #comfunc global ID3D10ShaderReflection1_GetConstantBufferByName 5 str #comfunc global ID3D10ShaderReflection1_GetResourceBindingDesc 6 int,var #comfunc global ID3D10ShaderReflection1_GetInputParameterDesc 7 int,var #comfunc global ID3D10ShaderReflection1_GetOutputParameterDesc 8 int,var #comfunc global ID3D10ShaderReflection1_GetVariableByName 9 str #comfunc global ID3D10ShaderReflection1_GetResourceBindingDescByName 10 str,var #comfunc global ID3D10ShaderReflection1_GetMovInstructionCount 11 var #comfunc global ID3D10ShaderReflection1_GetMovcInstructionCount 12 var #comfunc global ID3D10ShaderReflection1_GetConversionInstructionCount 13 var #comfunc global ID3D10ShaderReflection1_GetBitwiseInstructionCount 14 var #comfunc global ID3D10ShaderReflection1_GetGSInputPrimitive 15 var #comfunc global ID3D10ShaderReflection1_IsLevel9Shader 16 var #comfunc global ID3D10ShaderReflection1_IsSampleFrequencyShader 17 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ID3D10ShaderReflection1 "{C3457783-A846-47CE-9520-CEA6F66E7447}" #usecom global ID3D10ShaderReflection1 IID_ID3D10ShaderReflection1 "{}" #comfunc global ID3D10ShaderReflection1_GetDesc 3 sptr #comfunc global ID3D10ShaderReflection1_GetConstantBufferByIndex 4 int #comfunc global ID3D10ShaderReflection1_GetConstantBufferByName 5 str #comfunc global ID3D10ShaderReflection1_GetResourceBindingDesc 6 int,sptr #comfunc global ID3D10ShaderReflection1_GetInputParameterDesc 7 int,sptr #comfunc global ID3D10ShaderReflection1_GetOutputParameterDesc 8 int,sptr #comfunc global ID3D10ShaderReflection1_GetVariableByName 9 str #comfunc global ID3D10ShaderReflection1_GetResourceBindingDescByName 10 str,sptr #comfunc global ID3D10ShaderReflection1_GetMovInstructionCount 11 sptr #comfunc global ID3D10ShaderReflection1_GetMovcInstructionCount 12 sptr #comfunc global ID3D10ShaderReflection1_GetConversionInstructionCount 13 sptr #comfunc global ID3D10ShaderReflection1_GetBitwiseInstructionCount 14 sptr #comfunc global ID3D10ShaderReflection1_GetGSInputPrimitive 15 sptr #comfunc global ID3D10ShaderReflection1_IsLevel9Shader 16 sptr #comfunc global ID3D10ShaderReflection1_IsSampleFrequencyShader 17 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。