diff options
Diffstat (limited to 'src/mbgl/gl/gl_object_store.hpp')
-rw-r--r-- | src/mbgl/gl/gl_object_store.hpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mbgl/gl/gl_object_store.hpp b/src/mbgl/gl/gl_object_store.hpp index be25728660..6c7f3c92f2 100644 --- a/src/mbgl/gl/gl_object_store.hpp +++ b/src/mbgl/gl/gl_object_store.hpp @@ -36,6 +36,21 @@ public: void reset(); }; +class ShaderHolder : public GLHolder { +public: + ShaderHolder(GLenum type_) : type(type_) {} + ~ShaderHolder() { reset(); } + + ShaderHolder(ShaderHolder&& o) noexcept : GLHolder(std::move(o)), type(o.type) {} + ShaderHolder& operator=(ShaderHolder&& o) noexcept { GLHolder::operator=(std::move(o)); type = o.type; return *this; } + + void create(); + void reset(); + +private: + GLenum type = 0; +}; + class GLObjectStore : private util::noncopyable { public: // Mark OpenGL objects for deletion |