#ifndef SHADER_H #define SHADER_H #include #include #include class QString; class Shader { static const std::string DEFAULT_VERT; static const std::string DEFAULT_FRAG; GLuint program; QString fileToString(QString filename); GLuint createShader(QString filename, GLenum shaderType); void printShaderInfoLog(GLuint shaderId); void printProgramInfoLog(GLuint programId); public: Shader(const QString &vertFilename, const QString &fragFilename); ~Shader(); GLuint getLocation(std::string attribName); void bind(); void unbind(); void bindFloat(GLuint location, float val); void bindMatrix(GLuint location, glm::mat4 mat); void bindVec3(GLuint location, glm::vec3 vec); }; #endif // SHADER_H