1 #pragma once
2 
3 #include <mbgl/renderer/render_layer.hpp>
4 #include <mbgl/style/layers/raster_layer_impl.hpp>
5 #include <mbgl/style/layers/raster_layer_properties.hpp>
6 
7 namespace mbgl {
8 
9 class RenderRasterLayer: public RenderLayer {
10 public:
11     RenderRasterLayer(Immutable<style::RasterLayer::Impl>);
12     ~RenderRasterLayer() final = default;
13 
14     void transition(const TransitionParameters&) override;
15     void evaluate(const PropertyEvaluationParameters&) override;
16     bool hasTransition() const override;
17 
18     void render(PaintParameters&, RenderSource*) override;
19 
20     std::unique_ptr<Bucket> createBucket(const BucketParameters&, const std::vector<const RenderLayer*>&) const override;
21 
22     // Paint properties
23     style::RasterPaintProperties::Unevaluated unevaluated;
24     style::RasterPaintProperties::PossiblyEvaluated evaluated;
25 
26     const style::RasterLayer::Impl& impl() const;
27 };
28 
29 template <>
is() const30 inline bool RenderLayer::is<RenderRasterLayer>() const {
31     return type == style::LayerType::Raster;
32 }
33 
34 } // namespace mbgl
35