4#include <unordered_map>
16 Shader(
const std::string &vertexPath,
const std::string &fragmentPath);
21 void SetUniformMat4(
const std::string &name,
const float *matrix)
const;
22 void SetUniform3f(
const std::string &name,
float x,
float y,
float z)
const;
23 void SetUniform1f(
const std::string &name,
float value)
const;
26 unsigned int m_RendererID;
27 mutable std::unordered_map<std::string, int> m_UniformLocationCache;
29 std::string LoadShaderSource(
const std::string &filepath);
30 unsigned int CompileShader(
unsigned int type,
const std::string &source);
31 unsigned int CreateShaderProgram(
const std::string &vertexSource,
const std::string &fragmentSource);
32 int GetUniformLocation(
const std::string &name)
const;
Encapsulates an OpenGL shader program, handling compilation, linking, and usage.
Definition Shader.h:14
void SetUniform3f(const std::string &name, float x, float y, float z) const
Definition Shader.cpp:149
void Bind() const
Definition Shader.cpp:35
void SetUniform1f(const std::string &name, float value) const
Definition Shader.cpp:154
void SetUniformMat4(const std::string &name, const float *matrix) const
Definition Shader.cpp:144
void Unbind() const
Definition Shader.cpp:40
~Shader()
Definition Shader.cpp:30