1 #pragma once
2 
3 #include <mbgl/renderer/render_layer.hpp>
4 #include <mbgl/style/layers/background_layer_impl.hpp>
5 #include <mbgl/style/layers/background_layer_properties.hpp>
6 
7 namespace mbgl {
8 
9 class RenderBackgroundLayer: public RenderLayer {
10 public:
11     RenderBackgroundLayer(Immutable<style::BackgroundLayer::Impl>);
12     ~RenderBackgroundLayer() 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     std::unique_ptr<Bucket> createBucket(const BucketParameters&, const std::vector<const RenderLayer*>&) const override;
20 
21     // Paint properties
22     style::BackgroundPaintProperties::Unevaluated unevaluated;
23     style::BackgroundPaintProperties::PossiblyEvaluated evaluated;
24 
25     const style::BackgroundLayer::Impl& impl() const;
26 };
27 
28 template <>
is() const29 inline bool RenderLayer::is<RenderBackgroundLayer>() const {
30     return type == style::LayerType::Background;
31 }
32 
33 } // namespace mbgl
34