58 void setUniform(
const std::string &name,
float value);
60 void setUniform(
const std::string &name,
const glm::vec2& value);
62 void setUniform(
const std::string &name,
const glm::vec3& value);
64 void setUniform(
const std::string &name,
const glm::vec4& value);
66 void setUniform(
const std::string &name,
const glm::mat3& value);
68 void setUniform(
const std::string &name,
const glm::mat4& value);
89 std::vector<TUniformVar> uniforms;
94 inline bool operator==(
const TUniformVar& lhs,
const TUniformVar& rhs)
97 lhs.name == rhs.name &&
98 lhs.type == rhs.type &&
99 memcmp(lhs.value, rhs.value,
sizeof(
float)) == 0;
101 inline bool operator!=(
const TUniformVar& lhs,
const TUniformVar& rhs){
return !operator==(lhs, rhs); }
105 inline bool operator==(
const Material& lhs,
const Material& rhs)
109 lhs.vsh == rhs.vsh &&
110 lhs.fsh == rhs.fsh &&
111 lhs.textureId == rhs.textureId &&
112 lhs.blendMode == rhs.blendMode &&
113 lhs.getUniforms() == rhs.getUniforms();
115 inline bool operator!=(
const Material& lhs,
const Material& rhs){
return !operator==(lhs, rhs); }
Contains methods to render objects.
Definition: Renderer.h:49
int priority
Materials with higher priority are propagated down in the Display List.
Definition: Material.h:74
const std::vector< TUniformVar > & getUniforms() const
Returns the list of all uniforms related with the current shader program.
Definition: Material.h:78
Material(const std::string &vsh, const std::string &fsh)
Default constructor using two paths for vertex and fragment shader respectively.
Definition: Material.cpp:6
EBlendMode blendMode
Blending mode.
Definition: Material.h:73
int textureId
Texture id.
Definition: Material.h:72
Represents a render material that would affect how objects will be rendered.
Definition: Material.h:39
void setUniform(const std::string &name, float value)
Set float shader uniform.
Definition: Material.cpp:16
std::string vsh
Path for vertex shader.
Definition: Material.h:70
virtual ~Material()
Default destructor.
Definition: Material.h:48
std::string fsh
Path for fragment shader.
Definition: Material.h:71
bool stopsPropagation
If true, no matter priorities, material won't be affected by parent materials.
Definition: Material.h:75