3#include <unordered_map>
26 unsigned int compile_shader(
unsigned int type_shader,
const std::string &source);
29 explicit Shader(
const std::string &filepath);
35 unsigned int create_sharder(
const std::string &vertex_shader,
const std::string &fragments_shader);
40 void set_uniform_float4(
const std::string &name,
float v0,
float v1,
float v2,
float v3);
44 void set_MVP(glm::mat4 &model, glm::mat4 &view, glm::mat4 &projection);
56 void set_MVP(glm::mat4 &model, glm::mat4 &view, glm::mat4 &projection);
64 void setup_uniforms(glm::mat4 &model, glm::mat4 &view, glm::mat4 &projection,
unsigned int compile_shader(unsigned int type_shader, const std::string &source)
Definition shaders.cpp:118
void set_uniform_mat4(const std::string &name, glm::mat4 &matrix)
Definition shaders.cpp:61
unsigned int shader_id
Definition shaders.hh:22
void set_directional_light(DirLight &dir_light)
void set_uniform_float1(const std::string &name, float v0)
Definition shaders.cpp:37
ShaderSourceCode parse_source(const std::string &filepath)
Definition shaders.cpp:81
void set_point_light(PointLight &point_light)
void set_uniform_float3(const std::string &name, float v0, float v1, float v2)
Definition shaders.cpp:43
void unbind() const
Definition shaders.cpp:25
void set_uniform_float4(const std::string &name, float v0, float v1, float v2, float v3)
Definition shaders.cpp:49
void bind() const
Definition shaders.cpp:20
std::string source_filepath
Definition shaders.hh:21
void set_uniform_int1(const std::string &name, int value)
Definition shaders.cpp:31
void set_uniform_vec3(const std::string &name, glm::vec3 &vec)
Definition shaders.cpp:55
std::unordered_map< std::string, int > uniform_location_cache
Definition shaders.hh:23
int get_uniform_location(const std::string &name)
Definition shaders.cpp:67
void set_MVP(glm::mat4 &model, glm::mat4 &view, glm::mat4 &projection)
unsigned int create_sharder(const std::string &vertex_shader, const std::string &fragments_shader)
Definition shaders.cpp:145
~Shader()
Definition shaders.cpp:17
std::string VertexSource
Definition shaders.hh:9
std::string FragmentSource
Definition shaders.hh:10