1234567891011121314151617181920212223242526272829303132333435 |
- #ifndef SHADER_H
- #define SHADER_H
- #include <GL/glew.h>
- #include <GLFW/glfw3.h>
- #include <iostream>
- #include <vector>
- class Shader final
- {
- public:
- Shader(const GLchar* vPath, const GLchar* fPath);
- ~Shader();
- bool isValid() const;
- void use() const;
- void setMatrix(const GLchar* name, const float* data) const;
-
- private:
- Shader(const Shader& other) = delete;
- Shader(Shader&& other) = delete;
- Shader& operator=(const Shader& other) = delete;
- Shader& operator=(Shader&& other) = delete;
-
- bool readFile(std::vector<GLchar>& buffer, const GLchar* path) const;
- bool compileShader(GLuint& shader, const GLchar* code, GLenum shaderType) const;
-
- bool valid;
- GLuint vShader;
- GLuint fShader;
- GLuint program;
- };
- #endif
|