summaryrefslogtreecommitdiff
path: root/src/mbgl/shader/shader.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/shader/shader.hpp')
-rw-r--r--src/mbgl/shader/shader.hpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/mbgl/shader/shader.hpp b/src/mbgl/shader/shader.hpp
index 927fdf0b0b..b543f73a6f 100644
--- a/src/mbgl/shader/shader.hpp
+++ b/src/mbgl/shader/shader.hpp
@@ -1,25 +1,21 @@
#ifndef MBGL_RENDERER_SHADER
#define MBGL_RENDERER_SHADER
-#include <mbgl/platform/gl.hpp>
+#include <mbgl/gl/gl.hpp>
+#include <mbgl/gl/gl_object_store.hpp>
#include <mbgl/util/noncopyable.hpp>
-#include <cstdint>
-#include <array>
-#include <string>
-
namespace mbgl {
class Shader : private util::noncopyable {
public:
- Shader(const GLchar *name, const GLchar *vertex, const GLchar *fragment);
+ Shader(const GLchar *name, const GLchar *vertex, const GLchar *fragment, gl::GLObjectStore&);
~Shader();
const GLchar *name;
- GLuint program;
- inline GLuint getID() const {
- return program;
+ GLuint getID() const {
+ return program.getID();
}
virtual void bind(GLbyte *offset) = 0;
@@ -28,10 +24,11 @@ protected:
GLint a_pos = -1;
private:
- bool compileShader(GLuint *shader, GLenum type, const GLchar *source[]);
+ bool compileShader(gl::ShaderHolder&, const GLchar *source[]);
- GLuint vertShader = 0;
- GLuint fragShader = 0;
+ gl::ProgramHolder program;
+ gl::ShaderHolder vertexShader = { GL_VERTEX_SHADER };
+ gl::ShaderHolder fragmentShader = { GL_FRAGMENT_SHADER };
};
} // namespace mbgl