SparrowRenderer/shader.h
2015-06-26 14:56:43 +02:00

33 lines
791 B
C++

#ifndef SHADER_H
#define SHADER_H
#include <glew/glew.h>
#include <string>
#include <glm/fwd.hpp>
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