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.hpp25
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;