1 #pragma once 2 3 #include <mbgl/renderer/render_layer.hpp> 4 #include <mbgl/style/layers/fill_layer_impl.hpp> 5 #include <mbgl/style/layers/fill_layer_properties.hpp> 6 7 namespace mbgl { 8 9 class RenderFillLayer: public RenderLayer { 10 public: 11 RenderFillLayer(Immutable<style::FillLayer::Impl>); 12 ~RenderFillLayer() final = default; 13 14 void transition(const TransitionParameters&) override; 15 void evaluate(const PropertyEvaluationParameters&) override; 16 bool hasTransition() const override; 17 void render(PaintParameters&, RenderSource*) override; 18 19 bool queryIntersectsFeature( 20 const GeometryCoordinates&, 21 const GeometryTileFeature&, 22 const float, 23 const TransformState&, 24 const float, 25 const mat4&) const override; 26 27 std::unique_ptr<Bucket> createBucket(const BucketParameters&, const std::vector<const RenderLayer*>&) const override; 28 29 // Paint properties 30 style::FillPaintProperties::Unevaluated unevaluated; 31 style::FillPaintProperties::PossiblyEvaluated evaluated; 32 33 const style::FillLayer::Impl& impl() const; 34 }; 35 36 template <> is() const37inline bool RenderLayer::is<RenderFillLayer>() const { 38 return type == style::LayerType::Fill; 39 } 40 41 } // namespace mbgl 42