Files
fall-fever/src/ShaderProgram.h
2020-09-26 14:21:02 +02:00

35 lines
965 B
C++

#pragma once
#include <glad/glad.h>
#include <glm/glm.hpp>
#include <string>
class ShaderProgram {
public:
ShaderProgram(const char* vertexShaderPath, const char* fragmentShaderPath);
ShaderProgram(const char* vertexShaderPath, const char* geometryShaderPath, const char* fragmentShaderPath);
~ShaderProgram();
void bind();
void unbind();
// May be rewritten...
void setUniform(const char *name, bool value) const;
void setUniform(const char *name, int value) const;
void setUniform(const char *name, float value) const;
void setUniform(const char *name, glm::vec3 vector) const;
void setUniform(const char *name, glm::mat3 matrix) const;
void setUniform(const char *name, glm::mat4 matrix) const;
GLuint getShaderProgramId() { return shaderProgramId; }
private:
std::string parse(const char* filename);
GLuint compile(std::string shaderSource, GLenum type);
GLuint shaderProgramId;
};