diff options
Diffstat (limited to 'src/mbgl/renderer/line_bucket.hpp')
-rw-r--r-- | src/mbgl/renderer/line_bucket.hpp | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/mbgl/renderer/line_bucket.hpp b/src/mbgl/renderer/line_bucket.hpp index d11d78ff69..78293d75f9 100644 --- a/src/mbgl/renderer/line_bucket.hpp +++ b/src/mbgl/renderer/line_bucket.hpp @@ -12,28 +12,37 @@ namespace mbgl { +namespace style { +class BucketParameters; +} // namespace style + class LineBucket : public Bucket { public: - LineBucket(uint32_t overscaling); - ~LineBucket() override; + LineBucket(const style::BucketParameters&, + const std::vector<const style::Layer*>&, + const style::LineLayoutProperties&); - void upload(gl::Context&) override; - void render(Painter&, PaintParameters&, const style::Layer&, const RenderTile&) override; + void addFeature(const GeometryTileFeature&, + const GeometryCollection&) override; bool hasData() const override; - void addGeometry(const GeometryCollection&); - void addGeometry(const GeometryCoordinates& line); + void upload(gl::Context&) override; + void render(Painter&, PaintParameters&, const style::Layer&, const RenderTile&) override; style::LineLayoutProperties::Evaluated layout; - gl::VertexVector<LineVertex> vertices; + gl::VertexVector<LineLayoutVertex> vertices; gl::IndexVector<gl::Triangles> triangles; gl::SegmentVector<LineAttributes> segments; - optional<gl::VertexBuffer<LineVertex>> vertexBuffer; + optional<gl::VertexBuffer<LineLayoutVertex>> vertexBuffer; optional<gl::IndexBuffer<gl::Triangles>> indexBuffer; + std::unordered_map<std::string, LineProgram::PaintPropertyBinders> paintPropertyBinders; + private: + void addGeometry(const GeometryCoordinates& line); + struct TriangleElement { TriangleElement(uint16_t a_, uint16_t b_, uint16_t c_) : a(a_), b(b_), c(c_) {} uint16_t a, b, c; |