#ifndef SHADER_H #define SHADER_H #include #include "../../ThirdParty/glm/glm.hpp" class Shader { public: unsigned int ID; Shader(const char* vertexPath, const char* fragmentPath); void use(); void setBool(const std::string &name, bool value) const; void setInt(const std::string &name, int value) const; void setFloat(const std::string &name, float value) const; void setVec3(const std::string &name, const glm::vec3 &value) const; void setMat4(const std::string &name, const glm::mat4 &mat) const; private: std::string readShaderFile(const char* filePath); void compileShaders(const char* vertexSource, const char* fragmentSource); void checkCompileErrors(unsigned int shader, std::string type); }; #endif