#pragma once #include #include namespace mbgl { namespace gl { class Context; namespace detail { struct ProgramDeleter { Context* context; void operator()(ProgramID) const; }; struct ShaderDeleter { Context* context; void operator()(ShaderID) const; }; struct BufferDeleter { Context* context; void operator()(BufferID) const; }; struct TextureDeleter { Context* context; void operator()(TextureID) const; }; struct VertexArrayDeleter { Context* context; void operator()(VertexArrayID) const; }; struct FramebufferDeleter { Context* context; void operator()(FramebufferID) const; }; struct RenderbufferDeleter { Context* context; void operator()(RenderbufferID) const; }; } // namespace detail using UniqueProgram = std_experimental::unique_resource; using UniqueShader = std_experimental::unique_resource; using UniqueBuffer = std_experimental::unique_resource; using UniqueTexture = std_experimental::unique_resource; using UniqueVertexArray = std_experimental::unique_resource; using UniqueFramebuffer = std_experimental::unique_resource; using UniqueRenderbuffer = std_experimental::unique_resource; } // namespace gl } // namespace mbgl