summaryrefslogtreecommitdiff
path: root/src/mbgl/gl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/gl')
-rw-r--r--src/mbgl/gl/context.hpp10
-rw-r--r--src/mbgl/gl/index_buffer.hpp27
-rw-r--r--src/mbgl/gl/vertex_buffer.hpp26
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;