diff options
Diffstat (limited to 'src/mbgl/gl')
-rw-r--r-- | src/mbgl/gl/context.hpp | 10 | ||||
-rw-r--r-- | src/mbgl/gl/index_buffer.hpp | 27 | ||||
-rw-r--r-- | src/mbgl/gl/vertex_buffer.hpp | 26 |
3 files changed, 6 insertions, 57 deletions
diff --git a/src/mbgl/gl/context.hpp b/src/mbgl/gl/context.hpp index 7bc139da36..f9b075406b 100644 --- a/src/mbgl/gl/context.hpp +++ b/src/mbgl/gl/context.hpp @@ -11,6 +11,8 @@ #include <mbgl/gl/index_buffer.hpp> #include <mbgl/gl/vertex_array.hpp> #include <mbgl/gl/types.hpp> +#include <mbgl/gfx/vertex_vector.hpp> +#include <mbgl/gfx/index_vector.hpp> #include <mbgl/gfx/draw_mode.hpp> #include <mbgl/gfx/depth_mode.hpp> #include <mbgl/gfx/stencil_mode.hpp> @@ -64,7 +66,7 @@ public: optional<std::pair<BinaryProgramFormat, std::string>> getBinaryProgram(ProgramID) const; template <class Vertex> - VertexBuffer<Vertex> createVertexBuffer(VertexVector<Vertex>&& v, const BufferUsage usage = BufferUsage::StaticDraw) { + VertexBuffer<Vertex> createVertexBuffer(gfx::VertexVector<Vertex>&& v, const BufferUsage usage = BufferUsage::StaticDraw) { return VertexBuffer<Vertex> { v.vertexSize(), createVertexBuffer(v.data(), v.byteSize(), usage) @@ -72,13 +74,13 @@ public: } template <class Vertex> - void updateVertexBuffer(VertexBuffer<Vertex>& buffer, VertexVector<Vertex>&& v) { + void updateVertexBuffer(VertexBuffer<Vertex>& buffer, gfx::VertexVector<Vertex>&& v) { assert(v.vertexSize() == buffer.vertexCount); updateVertexBuffer(buffer.buffer, v.data(), v.byteSize()); } template <class DrawMode> - IndexBuffer<DrawMode> createIndexBuffer(IndexVector<DrawMode>&& v, const BufferUsage usage = BufferUsage::StaticDraw) { + IndexBuffer<DrawMode> createIndexBuffer(gfx::IndexVector<DrawMode>&& v, const BufferUsage usage = BufferUsage::StaticDraw) { return IndexBuffer<DrawMode> { v.indexSize(), createIndexBuffer(v.data(), v.byteSize(), usage) @@ -86,7 +88,7 @@ public: } template <class DrawMode> - void updateIndexBuffer(IndexBuffer<DrawMode>& buffer, IndexVector<DrawMode>&& v) { + void updateIndexBuffer(IndexBuffer<DrawMode>& buffer, gfx::IndexVector<DrawMode>&& v) { assert(v.indexSize() == buffer.indexCount); updateIndexBuffer(buffer.buffer, v.data(), v.byteSize()); } diff --git a/src/mbgl/gl/index_buffer.hpp b/src/mbgl/gl/index_buffer.hpp index 14bdcf09e7..bf20932451 100644 --- a/src/mbgl/gl/index_buffer.hpp +++ b/src/mbgl/gl/index_buffer.hpp @@ -1,38 +1,11 @@ #pragma once #include <mbgl/gl/object.hpp> -#include <mbgl/gfx/draw_mode.hpp> -#include <mbgl/util/ignore.hpp> - -#include <vector> namespace mbgl { namespace gl { template <class DrawMode> -class IndexVector { -public: - static constexpr std::size_t groupSize = DrawMode::bufferGroupSize; - - template <class... Args> - void emplace_back(Args&&... args) { - static_assert(sizeof...(args) == groupSize, "wrong buffer element count"); - util::ignore({(v.emplace_back(std::forward<Args>(args)), 0)...}); - } - - std::size_t indexSize() const { return v.size(); } - std::size_t byteSize() const { return v.size() * sizeof(uint16_t); } - - bool empty() const { return v.empty(); } - void clear() { v.clear(); } - const uint16_t* data() const { return v.data(); } - const std::vector<uint16_t>& vector() const { return v; } - -private: - std::vector<uint16_t> v; -}; - -template <class DrawMode> class IndexBuffer { public: std::size_t indexCount; diff --git a/src/mbgl/gl/vertex_buffer.hpp b/src/mbgl/gl/vertex_buffer.hpp index 0e2db2608f..0b62b86c12 100644 --- a/src/mbgl/gl/vertex_buffer.hpp +++ b/src/mbgl/gl/vertex_buffer.hpp @@ -1,9 +1,6 @@ #pragma once #include <mbgl/gl/object.hpp> -#include <mbgl/gfx/primitives.hpp> -#include <mbgl/gfx/draw_mode.hpp> -#include <mbgl/util/ignore.hpp> #include <vector> @@ -11,29 +8,6 @@ namespace mbgl { namespace gl { template <class V> -class VertexVector { -public: - using Vertex = V; - - template <class... Args> - void emplace_back(Args&&... args) { - static_assert(sizeof...(args) == 1, "wrong buffer element count"); - util::ignore({(v.emplace_back(std::forward<Args>(args)), 0)...}); - } - - std::size_t vertexSize() const { return v.size(); } - std::size_t byteSize() const { return v.size() * sizeof(Vertex); } - - bool empty() const { return v.empty(); } - void clear() { v.clear(); } - const Vertex* data() const { return v.data(); } - const std::vector<Vertex>& vector() const { return v; } - -private: - std::vector<Vertex> v; -}; - -template <class V> class VertexBuffer { public: using Vertex = V; |