#include #include #include namespace mbgl { namespace style { CustomLayer::CustomLayer(const std::string& layerID, CustomLayerInitializeFunction init, CustomLayerRenderFunction render, CustomLayerContextLostFunction contextLost, CustomLayerDeinitializeFunction deinit, void* context) : Layer(makeMutable(layerID, init, render, contextLost, deinit, context)) { } CustomLayer::CustomLayer(const std::string& layerID, CustomLayerInitializeFunction init, CustomLayerRenderFunction render, CustomLayerDeinitializeFunction deinit, void* context) : Layer(makeMutable(layerID, init, render, nullptr, deinit, context)) { } CustomLayer::~CustomLayer() = default; const CustomLayer::Impl& CustomLayer::impl() const { return static_cast(*baseImpl); } Mutable CustomLayer::mutableImpl() const { return makeMutable(impl()); } std::unique_ptr CustomLayer::cloneRef(const std::string&) const { assert(false); return nullptr; } // Visibility void CustomLayer::setVisibility(VisibilityType value) { if (value == getVisibility()) return; auto impl_ = mutableImpl(); impl_->visibility = value; baseImpl = std::move(impl_); observer->onLayerChanged(*this); } // Zoom range void CustomLayer::setMinZoom(float minZoom) { auto impl_ = mutableImpl(); impl_->minZoom = minZoom; baseImpl = std::move(impl_); } void CustomLayer::setMaxZoom(float maxZoom) { auto impl_ = mutableImpl(); impl_->maxZoom = maxZoom; baseImpl = std::move(impl_); } template <> bool Layer::is() const { return getType() == LayerType::Custom; } } // namespace style } // namespace mbgl