summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mbgl/style/layer_impl.cpp9
-rw-r--r--src/mbgl/style/layer_impl.hpp2
-rw-r--r--src/mbgl/style/style.cpp2
3 files changed, 8 insertions, 5 deletions
diff --git a/src/mbgl/style/layer_impl.cpp b/src/mbgl/style/layer_impl.cpp
index 74cc80d253..56f66d1789 100644
--- a/src/mbgl/style/layer_impl.cpp
+++ b/src/mbgl/style/layer_impl.cpp
@@ -11,9 +11,12 @@ bool Layer::Impl::hasRenderPass(RenderPass pass) const {
return bool(passes & pass);
}
-bool Layer::Impl::needsRendering() const {
- return passes != RenderPass::None && visibility != VisibilityType::None;
-}
+bool Layer::Impl::needsRendering(float zoom) const {
+ return passes != RenderPass::None
+ && visibility != VisibilityType::None
+ && minZoom <= zoom
+ && maxZoom >= zoom;
+ }
} // namespace style
} // namespace mbgl
diff --git a/src/mbgl/style/layer_impl.hpp b/src/mbgl/style/layer_impl.hpp
index dcd5d9906b..c84e9b9dea 100644
--- a/src/mbgl/style/layer_impl.hpp
+++ b/src/mbgl/style/layer_impl.hpp
@@ -59,7 +59,7 @@ public:
bool hasRenderPass(RenderPass) const;
// Checks whether this layer can be rendered.
- bool needsRendering() const;
+ bool needsRendering(float zoom) const;
virtual float getQueryRadius() const { return 0; }
virtual bool queryIntersectsGeometry(
diff --git a/src/mbgl/style/style.cpp b/src/mbgl/style/style.cpp
index 5ca36b030f..d9b49d4309 100644
--- a/src/mbgl/style/style.cpp
+++ b/src/mbgl/style/style.cpp
@@ -212,7 +212,7 @@ void Style::recalculate(float z, const TimePoint& timePoint, MapMode mode) {
hasPendingTransitions |= layer->baseImpl->recalculate(parameters);
Source* source = getSource(layer->baseImpl->source);
- if (source && layer->baseImpl->needsRendering()) {
+ if (source && layer->baseImpl->needsRendering(z)) {
source->enabled = true;
if (!source->loaded && !source->isLoading()) {
source->load(fileSource);