ホーム › Graphics.Direct3D12 › ID3D12ShaderReflection
ID3D12ShaderReflection
COMメソッド 19
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetDesc(D3D12_SHADER_DESC* pDesc)
| pDesc | D3D12_SHADER_DESC* | out | シェーダー全体の記述情報を受け取るD3D12_SHADER_DESC構造体へのポインター。 |
vtbl 4 ID3D12ShaderReflectionConstantBuffer* GetConstantBufferByIndex(DWORD Index)
| Index | DWORD | in | 取得する定数バッファーの0始まりインデックスを示すDWORD値。 |
vtbl 5 ID3D12ShaderReflectionConstantBuffer* GetConstantBufferByName(LPSTR Name)
| Name | LPSTR | in | 取得する定数バッファーの名前を示すLPSTR(ANSI文字列)。 |
vtbl 6 HRESULT GetResourceBindingDesc(DWORD ResourceIndex, D3D12_SHADER_INPUT_BIND_DESC* pDesc)
| ResourceIndex | DWORD | in | 取得するリソースバインドの0始まりインデックスを示すDWORD値。 |
| pDesc | D3D12_SHADER_INPUT_BIND_DESC* | out | リソースバインド情報を受け取るD3D12_SHADER_INPUT_BIND_DESC構造体へのポインター。 |
vtbl 7 HRESULT GetInputParameterDesc(DWORD ParameterIndex, D3D12_SIGNATURE_PARAMETER_DESC* pDesc)
| ParameterIndex | DWORD | in | 取得する入力パラメーターの0始まりインデックスを示すDWORD値。 |
| pDesc | D3D12_SIGNATURE_PARAMETER_DESC* | out | 入力シグネチャ情報を受け取るD3D12_SIGNATURE_PARAMETER_DESC構造体へのポインター。 |
vtbl 8 HRESULT GetOutputParameterDesc(DWORD ParameterIndex, D3D12_SIGNATURE_PARAMETER_DESC* pDesc)
| ParameterIndex | DWORD | in | 取得する出力パラメーターの0始まりインデックスを示すDWORD値。 |
| pDesc | D3D12_SIGNATURE_PARAMETER_DESC* | out | 出力シグネチャ情報を受け取るD3D12_SIGNATURE_PARAMETER_DESC構造体へのポインター。 |
vtbl 9 HRESULT GetPatchConstantParameterDesc(DWORD ParameterIndex, D3D12_SIGNATURE_PARAMETER_DESC* pDesc)
| ParameterIndex | DWORD | in | 取得するパッチ定数パラメーターの0始まりインデックスを示すDWORD値。 |
| pDesc | D3D12_SIGNATURE_PARAMETER_DESC* | out | パッチ定数シグネチャ情報を受け取るD3D12_SIGNATURE_PARAMETER_DESC構造体へのポインター。 |
vtbl 10 ID3D12ShaderReflectionVariable* GetVariableByName(LPSTR Name)
| Name | LPSTR | in | 取得するシェーダー変数の名前を示すLPSTR(ANSI文字列)。 |
vtbl 11 HRESULT GetResourceBindingDescByName(LPSTR Name, D3D12_SHADER_INPUT_BIND_DESC* pDesc)
| Name | LPSTR | in | 取得するリソースバインドの名前を示すLPSTR(ANSI文字列)。 |
| pDesc | D3D12_SHADER_INPUT_BIND_DESC* | out | リソースバインド情報を受け取るD3D12_SHADER_INPUT_BIND_DESC構造体へのポインター。 |
vtbl 12 DWORD GetMovInstructionCount()
vtbl 13 DWORD GetMovcInstructionCount()
vtbl 14 DWORD GetConversionInstructionCount()
vtbl 15 DWORD GetBitwiseInstructionCount()
vtbl 16 D3D_PRIMITIVE GetGSInputPrimitive()
vtbl 17 BOOL IsSampleFrequencyShader()
vtbl 18 DWORD GetNumInterfaceSlots()
vtbl 19 HRESULT GetMinFeatureLevel(D3D_FEATURE_LEVEL* pLevel)
| pLevel | D3D_FEATURE_LEVEL* | out | シェーダーが要求する最小機能レベルを受け取るD3D_FEATURE_LEVELへのポインター。 |
| pSizeX | DWORD* | outoptional | コンピュートシェーダーのX方向スレッド数を受け取るDWORDへのポインター。NULL可。 |
| pSizeY | DWORD* | outoptional | コンピュートシェーダーのY方向スレッド数を受け取るDWORDへのポインター。NULL可。 |
| pSizeZ | DWORD* | outoptional | コンピュートシェーダーのZ方向スレッド数を受け取るDWORDへのポインター。NULL可。 |
vtbl 21 ULONGLONG GetRequiresFlags()
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ID3D12ShaderReflection "{5A58797D-A72C-478D-8BA2-EFC6B0EFE88E}" #usecom global ID3D12ShaderReflection IID_ID3D12ShaderReflection "{}" #comfunc global ID3D12ShaderReflection_GetDesc 3 var #comfunc global ID3D12ShaderReflection_GetConstantBufferByIndex 4 int #comfunc global ID3D12ShaderReflection_GetConstantBufferByName 5 str #comfunc global ID3D12ShaderReflection_GetResourceBindingDesc 6 int,var #comfunc global ID3D12ShaderReflection_GetInputParameterDesc 7 int,var #comfunc global ID3D12ShaderReflection_GetOutputParameterDesc 8 int,var #comfunc global ID3D12ShaderReflection_GetPatchConstantParameterDesc 9 int,var #comfunc global ID3D12ShaderReflection_GetVariableByName 10 str #comfunc global ID3D12ShaderReflection_GetResourceBindingDescByName 11 str,var #comfunc global ID3D12ShaderReflection_GetMovInstructionCount 12 #comfunc global ID3D12ShaderReflection_GetMovcInstructionCount 13 #comfunc global ID3D12ShaderReflection_GetConversionInstructionCount 14 #comfunc global ID3D12ShaderReflection_GetBitwiseInstructionCount 15 #comfunc global ID3D12ShaderReflection_GetGSInputPrimitive 16 #comfunc global ID3D12ShaderReflection_IsSampleFrequencyShader 17 #comfunc global ID3D12ShaderReflection_GetNumInterfaceSlots 18 #comfunc global ID3D12ShaderReflection_GetMinFeatureLevel 19 var #comfunc global ID3D12ShaderReflection_GetThreadGroupSize 20 var,var,var #comfunc global ID3D12ShaderReflection_GetRequiresFlags 21 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ID3D12ShaderReflection "{5A58797D-A72C-478D-8BA2-EFC6B0EFE88E}" #usecom global ID3D12ShaderReflection IID_ID3D12ShaderReflection "{}" #comfunc global ID3D12ShaderReflection_GetDesc 3 sptr #comfunc global ID3D12ShaderReflection_GetConstantBufferByIndex 4 int #comfunc global ID3D12ShaderReflection_GetConstantBufferByName 5 str #comfunc global ID3D12ShaderReflection_GetResourceBindingDesc 6 int,sptr #comfunc global ID3D12ShaderReflection_GetInputParameterDesc 7 int,sptr #comfunc global ID3D12ShaderReflection_GetOutputParameterDesc 8 int,sptr #comfunc global ID3D12ShaderReflection_GetPatchConstantParameterDesc 9 int,sptr #comfunc global ID3D12ShaderReflection_GetVariableByName 10 str #comfunc global ID3D12ShaderReflection_GetResourceBindingDescByName 11 str,sptr #comfunc global ID3D12ShaderReflection_GetMovInstructionCount 12 #comfunc global ID3D12ShaderReflection_GetMovcInstructionCount 13 #comfunc global ID3D12ShaderReflection_GetConversionInstructionCount 14 #comfunc global ID3D12ShaderReflection_GetBitwiseInstructionCount 15 #comfunc global ID3D12ShaderReflection_GetGSInputPrimitive 16 #comfunc global ID3D12ShaderReflection_IsSampleFrequencyShader 17 #comfunc global ID3D12ShaderReflection_GetNumInterfaceSlots 18 #comfunc global ID3D12ShaderReflection_GetMinFeatureLevel 19 sptr #comfunc global ID3D12ShaderReflection_GetThreadGroupSize 20 sptr,sptr,sptr #comfunc global ID3D12ShaderReflection_GetRequiresFlags 21 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。