29using namespace Brenta;
47 if ((err = glGetError()) != GL_NO_ERROR)
49 ERROR(
"Error using shader: ", shader_name);
50 std::cout << err << std::endl;
58 glUniform1i(glGetUniformLocation(
Shader::GetId(shader_name), name.c_str()),
60 if (glGetError() != GL_NO_ERROR)
62 ERROR(
"Error setting bool value for shader: ", shader_name,
70 glUniform1i(glGetUniformLocation(
Shader::GetId(shader_name), name.c_str()),
72 if (glGetError() != GL_NO_ERROR)
74 ERROR(
"Error setting int value for shader: ", shader_name,
82 glUniform1f(glGetUniformLocation(
Shader::GetId(shader_name), name.c_str()),
84 if (glGetError() != GL_NO_ERROR)
86 ERROR(
"Error setting float value for shader: ", shader_name,
95 glUniformMatrix4fv(matLoc, 1, GL_FALSE, glm::value_ptr(value));
96 if (glGetError() != GL_NO_ERROR)
98 ERROR(
"Error setting mat4 value for shader: ", shader_name,
106 unsigned int vecLoc =
108 glUniform3f(vecLoc, x, y, z);
109 if (glGetError() != GL_NO_ERROR)
111 ERROR(
"Error setting vec3 value for shader: ", shader_name,
112 " and name: ", name);
119 unsigned int vecLoc =
121 glUniform3f(vecLoc, value.x, value.y, value.z);
122 if (glGetError() != GL_NO_ERROR)
124 ERROR(
"Error setting vec3 value for shader: ", shader_name,
125 " and name: ", name);
131void Shader::CheckCompileErrors(
unsigned int shader, std::string type)
135 if (type !=
"PROGRAM")
137 glGetShaderiv(shader, GL_COMPILE_STATUS, &success);
140 glGetShaderInfoLog(shader, 1024, NULL, infoLog);
141 std::cout <<
"ERROR::SHADER_COMPILATION_ERROR of type: " << type
143 << infoLog << std::endl;
148 glGetProgramiv(shader, GL_LINK_STATUS, &success);
151 glGetProgramInfoLog(shader, 1024, NULL, infoLog);
152 std::cout <<
"ERROR::PROGRAM_LINKING_ERROR of type: " << type
154 << infoLog << std::endl;
static void SetMat4(Types::ShaderName shader_name, const GLchar *name, glm::mat4 value)
Set a 4x4 matrix in the shader.
static void SetVec3(Types::ShaderName shader_name, const GLchar *name, float x, float y, float z)
Set a 3D vector in the shader.
static void SetBool(Types::ShaderName shader_name, const std::string &name, bool value)
Set a boolean in the shader.
static unsigned int GetId(Types::ShaderName shader_name)
Get the ID of a shader.
static void SetInt(Types::ShaderName shader_name, const std::string &name, int value)
Set an integer in the shader.
static std::unordered_map< Types::ShaderName, unsigned int > shaders
Map of shaders.
static void SetFloat(Types::ShaderName shader_name, const std::string &name, float value)
Set a float in the shader.
static void Use(Types::ShaderName shader_name)
Use the shader.