diff options
Diffstat (limited to 'src/mbgl/renderer/line_bucket.hpp')
-rw-r--r-- | src/mbgl/renderer/line_bucket.hpp | 30 |
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; }; |