该类是对于D3D11_SHADER_MACRO的封装。
typedef struct _D3D_SHADER_MACRO {
LPCSTR Name;
LPCSTR Definition;
} D3D_SHADER_MACRO, *LPD3D_SHADER_MACRO;
shader macro是用于描述shader中的宏
用法如下:
D3D11_SHADER_MACRO Shader_Macros[] = { "zero" , "1"};
描述了一个名称为zero的宏,value为1
该类对其进行了封装,以便更好的对shader中的宏进行管理
其通过定义一个容器用于保存所有的宏
struct GTE_IMPEXP Define
{
DefineType type;
std::string name;
std::string value;
};
std::vector<Define> mDefines;
并且定义了一系列的接口Set*()用于添加宏
HLSLDefiner& SetInt(std::string const& name, int value);
HLSLDefiner& SetUnsignedInt(std::string const& name, unsigned int value);
HLSLDefiner& SetFloat(std::string const& name, float value);
HLSLDefiner& SetDouble(std::string const& name, double value);
HLSLDefiner& SetString(std::string const& name, std::string const& value);