#pragma once #include #include #include #include class Shader { public: unsigned int ID = UINT_MAX; Shader(const char* vertexPath, const char* fragmentPath); unsigned int load_shader(const std::string& filename, GLenum shader_type); void use() const; 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 setVec4(const std::string &name, float v1, float v2, float v3, float v4) const; void setMat4(const std::string &name, const glm::mat4& what) const; void cleanup(); };