4 #include <unordered_map>
11 using std::unordered_map;
51 if (this->shaderId ==
shaderId)
return;
80 void setShaderParameter(
const string& parameterName,
const string& parameterValueString);
89 for (
const auto& [parameterName, parameterValue]:
parameters) {
90 switch (parameterValue.getType()) {
94 hash+= to_string(parameterValue.getBooleanValue());
97 hash+= to_string(parameterValue.getIntegerValue());
100 hash+= to_string(
static_cast<int>(parameterValue.getFloatValue() * 100.0f));
104 const auto& shaderParameterArray = parameterValue.getVector2Value().getArray();
105 for (
auto i = 0; i < shaderParameterArray.size(); i++) {
106 if (i != 0)
hash+=
",";
107 hash+= to_string(
static_cast<int>(shaderParameterArray[i] * 100.0f));
113 const auto& shaderParameterArray = parameterValue.getVector3Value().getArray();
114 for (
auto i = 0; i < shaderParameterArray.size(); i++) {
115 if (i != 0)
hash+=
",";
116 hash+= to_string(
static_cast<int>(shaderParameterArray[i] * 100.0f));
123 const auto& shaderParameterArray = parameterValue.getVector4Value().getArray();
124 for (
auto i = 0; i < shaderParameterArray.size(); i++) {
125 if (i != 0)
hash+=
",";
126 hash+= to_string(
static_cast<int>(shaderParameterArray[i] * 100.0f));
TDME2 engine entity shader parameters.
EntityShaderParameters()
Public constructor.
~EntityShaderParameters()
Destructor.
void computeHash()
Compute shader parameters hash.
void setShaderParameter(const string ¶meterName, const ShaderParameter ¶meterValue)
Set shader parameter for given parameter name.
const string & getShaderParametersHash() const
unordered_map< string, ShaderParameter > parameters
void setShader(const string &shaderId)
Set shader.
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.