From c3cb4582250fc9f6bc125cfa11729a502b7d7a04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Ka=CC=88fer?= Date: Wed, 27 Aug 2014 12:08:21 +0200 Subject: make ElementGroup and VertexArrayObject movable to avoid using unique_ptrs --- include/mbgl/geometry/elements_buffer.hpp | 5 +++++ include/mbgl/geometry/vao.hpp | 10 ++++++++++ 2 files changed, 15 insertions(+) (limited to 'include/mbgl/geometry') diff --git a/include/mbgl/geometry/elements_buffer.hpp b/include/mbgl/geometry/elements_buffer.hpp index 44b5c71dd2..56080e29fe 100644 --- a/include/mbgl/geometry/elements_buffer.hpp +++ b/include/mbgl/geometry/elements_buffer.hpp @@ -20,6 +20,11 @@ struct ElementGroup : public util::noncopyable { : vertex_length(vertex_length), elements_length(elements_length) { } + + ElementGroup(ElementGroup &&rhs) noexcept + : array(std::move(rhs.array)), + vertex_length(rhs.vertex_length), + elements_length(rhs.elements_length) {}; }; class TriangleElementsBuffer : public Buffer< diff --git a/include/mbgl/geometry/vao.hpp b/include/mbgl/geometry/vao.hpp index 3d32ed28a8..bb1f571fff 100644 --- a/include/mbgl/geometry/vao.hpp +++ b/include/mbgl/geometry/vao.hpp @@ -12,6 +12,16 @@ namespace mbgl { #if GL_ARB_vertex_array_object class VertexArrayObject : public util::noncopyable { public: + inline VertexArrayObject() {}; + + inline VertexArrayObject(VertexArrayObject &&rhs) noexcept + : vao(rhs.vao), + bound_shader(rhs.bound_shader), + bound_shader_name(rhs.bound_shader_name), + bound_vertex_buffer(rhs.bound_vertex_buffer), + bound_elements_buffer(rhs.bound_elements_buffer), + bound_offset(rhs.bound_offset) {}; + template inline void bind(Shader& shader, VertexBuffer &vertexBuffer, char *offset) { bindVertexArrayObject(); -- cgit v1.2.1