summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/line_bucket.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/line_bucket.hpp')
-rw-r--r--src/mbgl/renderer/line_bucket.hpp30
1 files changed, 16 insertions, 14 deletions
diff --git a/src/mbgl/renderer/line_bucket.hpp b/src/mbgl/renderer/line_bucket.hpp
index 5ddaca8ae8..8cb73c1d27 100644
--- a/src/mbgl/renderer/line_bucket.hpp
+++ b/src/mbgl/renderer/line_bucket.hpp
@@ -2,23 +2,21 @@
#include <mbgl/renderer/bucket.hpp>
#include <mbgl/tile/geometry_tile_data.hpp>
-#include <mbgl/geometry/vao.hpp>
-#include <mbgl/geometry/elements_buffer.hpp>
-#include <mbgl/geometry/line_buffer.hpp>
+#include <mbgl/gl/element_group.hpp>
+#include <mbgl/gl/vertex_buffer.hpp>
+#include <mbgl/gl/index_buffer.hpp>
+#include <mbgl/shader/line_vertex.hpp>
#include <mbgl/style/layers/line_layer_properties.hpp>
#include <vector>
namespace mbgl {
-class LineVertexBuffer;
-class TriangleElementsBuffer;
class LineShader;
class LineSDFShader;
class LinepatternShader;
class LineBucket : public Bucket {
- using TriangleGroup = ElementGroup<6>;
public:
LineBucket(uint32_t overscaling);
@@ -43,24 +41,28 @@ private:
};
void addCurrentVertex(const GeometryCoordinate& currentVertex, double& distance,
const Point<double>& normal, double endLeft, double endRight, bool round,
- int32_t startVertex, std::vector<LineBucket::TriangleElement>& triangleStore);
+ std::size_t startVertex, std::vector<LineBucket::TriangleElement>& triangleStore);
void addPieSliceVertex(const GeometryCoordinate& currentVertex, double distance,
- const Point<double>& extrude, bool lineTurnsLeft, int32_t startVertex,
+ const Point<double>& extrude, bool lineTurnsLeft, std::size_t startVertex,
std::vector<TriangleElement>& triangleStore);
public:
style::LineLayoutProperties layout;
private:
- LineVertexBuffer vertexBuffer;
- TriangleElementsBuffer triangleElementsBuffer;
-
- int32_t e1;
- int32_t e2;
- int32_t e3;
+ std::vector<LineVertex> vertices;
+ std::vector<gl::Triangle> triangles;
+ using TriangleGroup = gl::ElementGroup<6>;
std::vector<std::unique_ptr<TriangleGroup>> triangleGroups;
+ optional<gl::VertexBuffer<LineVertex>> vertexBuffer;
+ optional<gl::IndexBuffer<gl::Triangle>> indexBuffer;
+
+ std::ptrdiff_t e1;
+ std::ptrdiff_t e2;
+ std::ptrdiff_t e3;
+
const uint32_t overscaling;
};