6 Shader(
const char *vertex_shader_path,
const char *fragment_shader_path);
9 void Load(
const char *vertex_shader_path,
const char *fragment_shader_path);
15 inline unsigned int getID(){
return m_ID; }
17 void SetUniform4f(
const std::string &name,
float v0,
float v1,
float v2,
float v3);
18 void SetUniform3f(
const std::string &name,
float v0,
float v1,
float v2);
19 void SetUniform2f(
const std::string &name,
float v0,
float v1);
21 void SetUniformMat4fv(
const std::string &name,
float *proj,
unsigned int num_elem);
22 void SetUniform1iv(
const std::string &name,
int *v,
unsigned int num_elem);
25 static unsigned int GetSubroutineIndex(
const char *uniform_name,
unsigned int shader_id);
28 std::unordered_map<std::string,int>m_UniformsCache;
33 char *m_VertexPath=
nullptr;
34 char *m_FragmentPath=
nullptr;
36 void Compile(
const char *vertex_src_code,
const char *fragment_src_code);
37 bool CheckShaderErrors(GLuint shader_ID);
38 int GetUniformLocation(
const std::string &name);
void SetUniform4f(const std::string &name, float v0, float v1, float v2, float v3)
static unsigned int GetSubroutineIndex(const char *uniform_name, unsigned int shader_id)
void SetUniform2f(const std::string &name, float v0, float v1)
void SetUniform1iv(const std::string &name, int *v, unsigned int num_elem)
void Load(const char *vertex_shader_path, const char *fragment_shader_path)
void SetUniform1f(const std::string &name, float v0)
void SetUniform1i(const std::string &name, int v0)
void SetUniformMat4fv(const std::string &name, float *proj, unsigned int num_elem)
static void SetSubroutineUniform(unsigned int uniform_index)
void SetUniform3f(const std::string &name, float v0, float v1, float v2)