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() const30inline bool RenderLayer::is<RenderRasterLayer>() const { 31 return type == style::LayerType::Raster; 32 } 33 34 } // namespace mbgl 35