aboutsummaryrefslogtreecommitdiff
path: root/src/shader/wrap/graphic_shader.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/shader/wrap/graphic_shader.h')
-rw-r--r--src/shader/wrap/graphic_shader.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/shader/wrap/graphic_shader.h b/src/shader/wrap/graphic_shader.h
new file mode 100644
index 0000000..25a5efb
--- /dev/null
+++ b/src/shader/wrap/graphic_shader.h
@@ -0,0 +1,29 @@
+#pragma once
+
+#include <vector>
+#include <string>
+
+#include <GL/glew.h>
+#include <glm/glm.hpp>
+
+class GraphicShader {
+private:
+ const GLuint _id;
+
+public:
+ struct Guard {
+ const GLuint _id;
+
+ Guard(GLuint id);
+ ~Guard();
+ };
+
+ Guard use() const;
+
+ GraphicShader(const std::string& vertex, const std::string fragment);
+ ~GraphicShader();
+
+ GLuint setUniform(const std::string& name, int value) const;
+ GLuint setUniform(const std::string& name, const std::vector<GLuint>& v) const;
+ GLuint setUniform(const std::string& name, glm::mat4& M) const;
+};