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::get_id(shader_name), name.c_str()),
60 if (glGetError() != GL_NO_ERROR)
62 ERROR(
"Error setting bool value for shader: {} and name: {}", shader_name, name);
69 glUniform1i(glGetUniformLocation(
shader::get_id(shader_name), name.c_str()),
71 if (glGetError() != GL_NO_ERROR)
73 ERROR(
"Error setting int value for shader: {} and name: {}", shader_name, name);
78 const std::string &name,
float value)
80 glUniform1f(glGetUniformLocation(
shader::get_id(shader_name), name.c_str()),
82 if (glGetError() != GL_NO_ERROR)
84 ERROR(
"Error setting float value for shader: {} and name: {}", shader_name, name);
93 glUniformMatrix4fv(matLoc, 1, GL_FALSE, glm::value_ptr(value));
94 if (glGetError() != GL_NO_ERROR)
96 ERROR(
"Error setting mat4 value for shader: {} and name: {}", shader_name, name);
101 float x,
float y,
float z)
103 unsigned int vecLoc =
105 glUniform3f(vecLoc, x, y, z);
106 if (glGetError() != GL_NO_ERROR)
108 ERROR(
"Error setting vec3 value for shader: {} and name: {}", shader_name, name);
115 unsigned int vecLoc =
117 glUniform3f(vecLoc, value.x, value.y, value.z);
118 if (glGetError() != GL_NO_ERROR)
120 ERROR(
"Error setting vec3 value for shader: {} and name: {}", shader_name, name);
126void shader::check_compile_errors(
unsigned int shader, std::string type)
130 if (type !=
"PROGRAM")
132 glGetShaderiv(
shader, GL_COMPILE_STATUS, &success);
135 glGetShaderInfoLog(
shader, 1024, NULL, infoLog);
136 std::cout <<
"ERROR::SHADER_COMPILATION_ERROR of type: " << type
138 << infoLog << std::endl;
143 glGetProgramiv(
shader, GL_LINK_STATUS, &success);
146 glGetProgramInfoLog(
shader, 1024, NULL, infoLog);
147 std::cout <<
"ERROR::PROGRAM_LINKING_ERROR of type: " << type
149 << infoLog << std::endl;
static void set_bool(types::shader_name_t shader_name, const std::string &name, bool value)
Set a boolean in the shader.
static std::unordered_map< types::shader_name_t, unsigned int > shaders
Map of shaders.
static void use(types::shader_name_t shader_name)
Use the shader.
static void set_int(types::shader_name_t shader_name, const std::string &name, int value)
Set an integer in the shader.
static void set_vec3(types::shader_name_t shader_name, const GLchar *name, float x, float y, float z)
Set a 3D vector in the shader.
static unsigned int get_id(types::shader_name_t shader_name)
Get the ID of a shader.
static void set_mat4(types::shader_name_t shader_name, const GLchar *name, glm::mat4 value)
Set a 4x4 matrix in the shader.
static void set_float(types::shader_name_t shader_name, const std::string &name, float value)
Set a float in the shader.