33 const glm::vec2& offset = glm::vec2(2,2)) {
42 const glm::vec4& shadow_col = glm::vec4(0,0,0,0.5f),
43 float width = 1.0f,
const glm::vec2& offset = glm::vec2(2,2)) {
73 virtual void bind()
const = 0;
75 virtual void set_value(
const std::string& name,
float value) = 0;
77 virtual void set_value(
const std::string& name,
int value) = 0;
79 virtual void set_value(
const std::string& name,
const int* values, Uint32 count) = 0;
81 virtual void set_value(
const std::string& name,
const float* values, Uint32 count) = 0;
83 virtual void set_value(
const std::string& name, glm::mat4 value, Uint32 count) = 0;
85 virtual void set_value(
const std::string& name, glm::vec2 value, Uint32 count) = 0;
87 virtual void set_value(
const std::string& name, glm::vec3 value, Uint32 count) = 0;
89 virtual void set_value(
const std::string& name, glm::vec4 value, Uint32 count) = 0;
91 virtual void set_value(
const std::string& name,
unsigned int value) = 0;
96 virtual unsigned int get_id()
const = 0;
104 std::unordered_map<std::string, unsigned int>
_uniforms;
Shader Abstract class.
Definition: shader.h:67
virtual unsigned int get_id() const =0
virtual void set_value(const std::string &name, glm::vec2 value, Uint32 count)=0
virtual void set_value(const std::string &name, const int *values, Uint32 count)=0
virtual void set_value(const std::string &name, const float *values, Uint32 count)=0
virtual void set_value(const std::string &name, int value)=0
virtual ~Shader()=default
std::unordered_map< std::string, unsigned int > _uniforms
Definition: shader.h:104
virtual void bind() const =0
virtual void set_value(const std::string &name, glm::mat4 value, Uint32 count)=0
virtual void set_value(const std::string &name, glm::vec4 value, Uint32 count)=0
virtual void set_value(const std::string &name, unsigned int value)=0
virtual bool is_valid() const =0
virtual void set_value(const std::string &name, glm::vec3 value, Uint32 count)=0
virtual void set_value(const std::string &name, float value)=0
UberShader shader effects for rendering texts and sprites.
Definition: shader.h:8
bool use_outline
Definition: shader.h:9
bool use_shadow
Definition: shader.h:10
glm::vec4 shadow_color
Definition: shader.h:12
glm::vec2 shadow_offset
Definition: shader.h:14
static UberShader shadow_only(const glm::vec4 &color=glm::vec4(0, 0, 0, 0.5f), const glm::vec2 &offset=glm::vec2(2, 2))
Definition: shader.h:32
static UberShader both(const glm::vec4 &outline_col=glm::vec4(0, 0, 0, 1), const glm::vec4 &shadow_col=glm::vec4(0, 0, 0, 0.5f), float width=1.0f, const glm::vec2 &offset=glm::vec2(2, 2))
Definition: shader.h:41
float outline_width
Definition: shader.h:13
static UberShader none()
Definition: shader.h:16
static UberShader outline_only(const glm::vec4 &color=glm::vec4(0, 0, 0, 1), float width=1.0f)
Definition: shader.h:24
glm::vec4 outline_color
Definition: shader.h:11
bool is_none() const
Definition: shader.h:20