#pragma once #include #include #include #include "material.h" #include "light.h" class Shader { unsigned int id; public: void use(); Shader(std::string vertexShaderPath, std::string fragmentShaderPath); ~Shader(); void set(std::string key, int value); void set(std::string key, float value); void set(std::string key, Material value); void set(std::string key, DirLight value); void set(std::string key, PointLight value); void set(std::string key, glm::vec3 value); void set(std::string key, glm::mat3 value); void set(std::string key, glm::mat4 value); };