7 #include <unordered_map> 21 std::string vertexShader, fragmentShader, computeShader, geometryShader;
22 std::unordered_map<std::string, GLint> locations;
24 void handleError(std::string name, GLuint shaderId);
25 GLuint loadStandardProgram();
26 GLuint loadComputeProgram();
27 bool loadShader(std::string source, GLenum shaderType, GLuint& shaderHandle);
29 GLint getUniformLocation(std::string location);
31 std::string readFile(std::string filePath);
33 void processDirectives(std::string& source);
34 void processImport(std::string& source);
59 Shader(std::string vertexShader, std::string fragmentShader);
66 Shader(std::string computeShader);
74 void setUniform(std::string uniform,
const glm::vec3& value);
81 void setUnifrom(GLint location,
const glm::vec3& value);
88 void setUniform(std::string uniform,
const glm::uvec3 & value);
95 void setUnifrom(GLint location,
const glm::uvec3 & value);
102 void setUniform(std::string uniform,
const int value);
109 void setUniform(GLint location,
const int value);
116 void setUniform(std::string uniform,
const float value);
123 void setUniform(GLint location,
const float value);
130 void setUniform(std::string uniform,
const glm::mat4& mat);
137 void setUniform(GLint location,
const glm::mat4& mat);
144 void setUniform(std::string uniform,
const glm::mat3& mat);
152 void setUniform(GLint location,
const glm::mat3& mat);
void setUnifrom(GLint location, const glm::vec3 &value)
Definition: Shader.cpp:252
static const std::string IMPORT_DIRECTIVE
Definition: Shader.h:46
void setUniform(std::string uniform, const glm::vec3 &value)
Definition: Shader.cpp:246
void unuse()
Definition: Shader.cpp:317
Class handling shader construction and managment.
Definition: Shader.h:17
void use()
Definition: Shader.cpp:312
Shader(std::string vertexShader, std::string fragmentShader)
Definition: Shader.cpp:233
static const std::string SHADER_DIRECTORY
Definition: Shader.h:52