summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <thiago@mapbox.com>2016-07-29 15:18:21 +0300
committerThiago Marcos P. Santos <thiago@mapbox.com>2016-07-29 15:26:30 +0300
commit045a644a7dd997a0123a1f49efa0e8c744b83fdf (patch)
treed314bafa6320b76153a11efa5de7481aa41b127e /src
parentde0cb554d676a8a84e01ed18508fd3ef52661368 (diff)
downloadqtlocation-mapboxgl-045a644a7dd997a0123a1f49efa0e8c744b83fdf.tar.gz
[core] Respect minzoom and maxzoom properties
Fixes #5811
Diffstat (limited to 'src')
-rw-r--r--src/mbgl/style/layer_impl.cpp7
-rw-r--r--src/mbgl/style/layer_impl.hpp2
-rw-r--r--src/mbgl/style/style.cpp2
3 files changed, 7 insertions, 4 deletions
diff --git a/src/mbgl/style/layer_impl.cpp b/src/mbgl/style/layer_impl.cpp
index b345297027..f50bf87339 100644
--- a/src/mbgl/style/layer_impl.cpp
+++ b/src/mbgl/style/layer_impl.cpp
@@ -21,8 +21,11 @@ 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
diff --git a/src/mbgl/style/layer_impl.hpp b/src/mbgl/style/layer_impl.hpp
index d2bf866e8e..c1f04fe513 100644
--- a/src/mbgl/style/layer_impl.hpp
+++ b/src/mbgl/style/layer_impl.hpp
@@ -64,7 +64,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 aae0e38d51..ce33a409f7 100644
--- a/src/mbgl/style/style.cpp
+++ b/src/mbgl/style/style.cpp
@@ -223,7 +223,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->baseImpl->enabled = true;
if (!source->baseImpl->loaded) {
source->baseImpl->load(fileSource);