32 const ShaderParameter EntityShaderParameters::getShaderParameter(
const string& parameterName)
const {
33 auto shaderParameterIt =
parameters.find(parameterName);
37 return defaultShaderParameter->value;
39 return shaderParameterIt->second;
45 Console::println(
"EntityShaderParameters::setShaderParameter(): no parameter for shader registered with id: " +
shaderId +
", and parameter name: " + parameterName);
48 if (currentShaderParameter.getType() != parameterValue.
getType()) {
49 Console::println(
"EntityShaderParameters::setShaderParameter(): parameter type mismatch for shader registered with id: " +
shaderId +
", and parameter name: " + parameterName);
58 Console::println(
"EntityShaderParameters::setShaderParameter(): no parameter for shader registered with id: " +
shaderId +
", and parameter name: " + parameterName);
62 switch(currentShaderParameter.getType()) {
66 parameterValue =
ShaderParameter(StringTools::toLowerCase(StringTools::trim(parameterValueString)) ==
"true");
69 parameterValue =
ShaderParameter(Integer::parse(StringTools::trim(parameterValueString)));
72 parameterValue =
ShaderParameter(Float::parse(StringTools::trim(parameterValueString)));
76 auto parameterValueStringArray = StringTools::tokenize(parameterValueString,
",");
77 if (parameterValueStringArray.size() != 2)
break;
80 Float::parse(StringTools::trim(parameterValueStringArray[0])),
81 Float::parse(StringTools::trim(parameterValueStringArray[1]))
88 auto parameterValueStringArray = StringTools::tokenize(parameterValueString,
",");
89 if (parameterValueStringArray.size() != 3)
break;
92 Float::parse(StringTools::trim(parameterValueStringArray[0])),
93 Float::parse(StringTools::trim(parameterValueStringArray[1])),
94 Float::parse(StringTools::trim(parameterValueStringArray[2]))
101 auto parameterValueStringArray = StringTools::tokenize(parameterValueString,
",");
102 if (parameterValueStringArray.size() != 4)
break;
105 Float::parse(StringTools::trim(parameterValueStringArray[0])),
106 Float::parse(StringTools::trim(parameterValueStringArray[1])),
107 Float::parse(StringTools::trim(parameterValueStringArray[2])),
108 Float::parse(StringTools::trim(parameterValueStringArray[3]))
115 auto parameterValueStringArray = StringTools::tokenize(parameterValueString,
",");
116 if (parameterValueStringArray.size() != 3 && parameterValueStringArray.size() != 4)
break;
119 Float::parse(StringTools::trim(parameterValueStringArray[0])),
120 Float::parse(StringTools::trim(parameterValueStringArray[1])),
121 Float::parse(StringTools::trim(parameterValueStringArray[2])),
122 parameterValueStringArray.size() == 4?Float::parse(StringTools::trim(parameterValueStringArray[3])):1.0f
130 if (currentShaderParameter.getType() != parameterValue.
getType()) {
131 Console::println(
"EntityShaderParameters::setShaderParameter(): parameter type mismatch for shader registered with id: " +
shaderId +
", and parameter name: " + parameterName);
Color 4 definition class.
static const Shader::ParameterDefaults * getDefaultShaderParameter(const string &shaderId, const string ¶meterName)
Returns shader parameter default value for given shader id and parameter name.
TDME2 engine entity shader parameters.
void setShaderParameter(const string ¶meterName, const ShaderParameter ¶meterValue)
Set shader parameter for given parameter name.
unordered_map< string, ShaderParameter > parameters
const ShaderParameter getShaderParameter(const string ¶meterName) const
Returns shader parameter for given parameter name, if the value does not exist, the default will be r...
Shader parameter model class.
Vector2 class representing vector2 mathematical structure and operations with x, y components.
Vector3 class representing vector3 mathematical structure and operations with x, y,...
Vector4 class representing vector4 mathematical structure and operations with x, y,...