summaryrefslogtreecommitdiff
path: root/include/mbgl/shader/shader.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/mbgl/shader/shader.hpp')
-rw-r--r--include/mbgl/shader/shader.hpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/include/mbgl/shader/shader.hpp b/include/mbgl/shader/shader.hpp
new file mode 100644
index 0000000000..2398cb12e3
--- /dev/null
+++ b/include/mbgl/shader/shader.hpp
@@ -0,0 +1,29 @@
+#ifndef MBGL_RENDERER_SHADER
+#define MBGL_RENDERER_SHADER
+
+#include <cstdint>
+#include <array>
+#include <mbgl/util/noncopyable.hpp>
+
+namespace mbgl {
+
+class Shader : private util::noncopyable {
+public:
+ Shader(const char *vertex, const char *fragment);
+ ~Shader();
+ bool valid;
+ uint32_t program;
+
+ void setMatrix(const std::array<float, 16>& matrix);
+
+private:
+ bool compileShader(uint32_t *shader, uint32_t type, const char *source);
+
+protected:
+ std::array<float, 16> matrix = {{}};
+ int32_t u_matrix = -1;
+};
+
+}
+
+#endif