1 #pragma once 2 3 #include <mbgl/renderer/render_layer.hpp> 4 #include <mbgl/style/layers/custom_layer_impl.hpp> 5 6 namespace mbgl { 7 8 class RenderCustomLayer: public RenderLayer { 9 public: 10 RenderCustomLayer(Immutable<style::CustomLayer::Impl>); 11 ~RenderCustomLayer() final; 12 transition(const TransitionParameters &)13 void transition(const TransitionParameters&) final {} 14 void evaluate(const PropertyEvaluationParameters&) override; 15 bool hasTransition() const override; 16 17 std::unique_ptr<Bucket> createBucket(const BucketParameters&, const std::vector<const RenderLayer*>&) const final; 18 void render(PaintParameters&, RenderSource*) final; 19 20 const style::CustomLayer::Impl& impl() const; 21 markContextDestroyed()22 void markContextDestroyed() { 23 contextDestroyed = true; 24 }; 25 26 private: 27 bool contextDestroyed = false; 28 std::shared_ptr<style::CustomLayerHost> host; 29 }; 30 31 template <> is() const32inline bool RenderLayer::is<RenderCustomLayer>() const { 33 return type == style::LayerType::Custom; 34 } 35 36 } // namespace mbgl 37