#pragma once #include #include #include #include #include #include #include #include namespace mbgl { class BucketParameters; class RenderFillLayer; class FillBucket final : public Bucket { public: ~FillBucket() override; using PossiblyEvaluatedPaintProperties = style::FillPaintProperties::PossiblyEvaluated; using PossiblyEvaluatedLayoutProperties = style::Properties<>::PossiblyEvaluated; FillBucket(const PossiblyEvaluatedLayoutProperties layout, const std::map>& layerPaintProperties, const float zoom, const uint32_t overscaling); void addFeature(const GeometryTileFeature&, const GeometryCollection&, const mbgl::ImagePositions&, const PatternLayerMap&) override; bool hasData() const override; void upload(gfx::Context&) override; float getQueryRadius(const RenderLayer&) const override; bool supportsLayer(const style::Layer::Impl&) const override; gfx::VertexVector vertices; gfx::IndexVector lines; gfx::IndexVector triangles; SegmentVector lineSegments; SegmentVector triangleSegments; optional> vertexBuffer; optional lineIndexBuffer; optional triangleIndexBuffer; std::map paintPropertyBinders; }; } // namespace mbgl