summaryrefslogtreecommitdiff
path: root/src/mbgl
diff options
context:
space:
mode:
authorVladimir Agafonkin <agafonkin@gmail.com>2015-10-06 13:58:38 +0300
committerVladimir Agafonkin <agafonkin@gmail.com>2015-10-06 14:25:00 +0300
commit453fd4c0b0ea6089b1f341870b4938dc92da63c8 (patch)
tree9f140deb3bba72df430da6f185c1d8044d4dd6ac /src/mbgl
parentb869771992e2210f8c95f297074b8289a070c183 (diff)
downloadqtlocation-mapboxgl-453fd4c0b0ea6089b1f341870b4938dc92da63c8.tar.gz
fix layer minZoom being ignored if not less than source maxZoom
This condition led to layers with high minzoom like oneway street arrows (z15) get parsed and placed regardless of minzoom (e.g. z11+), wasting a lot of worker CPU time. It became unnecessary after we added reparsing tiles when overscaling, and even before that it should have probably been <= rather than <.
Diffstat (limited to 'src/mbgl')
-rw-r--r--src/mbgl/map/live_tile_data.cpp1
-rw-r--r--src/mbgl/map/tile_worker.cpp4
-rw-r--r--src/mbgl/map/tile_worker.hpp2
-rw-r--r--src/mbgl/map/vector_tile_data.cpp1
4 files changed, 1 insertions, 7 deletions
diff --git a/src/mbgl/map/live_tile_data.cpp b/src/mbgl/map/live_tile_data.cpp
index dec7d40263..15a1c6a3f4 100644
--- a/src/mbgl/map/live_tile_data.cpp
+++ b/src/mbgl/map/live_tile_data.cpp
@@ -20,7 +20,6 @@ LiveTileData::LiveTileData(const TileID& id_,
worker(style_.workers),
tileWorker(id_,
source_.source_id,
- source_.max_zoom,
style_,
style_.layers,
state,
diff --git a/src/mbgl/map/tile_worker.cpp b/src/mbgl/map/tile_worker.cpp
index bbbfec1da6..acf8320093 100644
--- a/src/mbgl/map/tile_worker.cpp
+++ b/src/mbgl/map/tile_worker.cpp
@@ -14,7 +14,6 @@ using namespace mbgl;
TileWorker::TileWorker(TileID id_,
std::string sourceID_,
- const uint16_t maxZoom_,
Style& style_,
std::vector<util::ptr<StyleLayer>> layers_,
const std::atomic<TileData::State>& state_,
@@ -22,7 +21,6 @@ TileWorker::TileWorker(TileID id_,
: layers(std::move(layers_)),
id(id_),
sourceID(sourceID_),
- maxZoom(maxZoom_),
style(style_),
state(state_),
collisionTile(std::move(collision_)) {
@@ -120,7 +118,7 @@ void TileWorker::parseLayer(const StyleLayer& layer, const GeometryTile& geometr
// Skip this bucket if we are to not render this
if (styleBucket.source != sourceID)
return;
- if (id.z < std::floor(styleBucket.min_zoom) && std::floor(styleBucket.min_zoom) < maxZoom)
+ if (id.z < std::floor(styleBucket.min_zoom))
return;
if (id.z >= std::ceil(styleBucket.max_zoom))
return;
diff --git a/src/mbgl/map/tile_worker.hpp b/src/mbgl/map/tile_worker.hpp
index 6f5a9d5126..53c5c90955 100644
--- a/src/mbgl/map/tile_worker.hpp
+++ b/src/mbgl/map/tile_worker.hpp
@@ -31,7 +31,6 @@ class TileWorker : public util::noncopyable {
public:
TileWorker(TileID,
std::string sourceID,
- uint16_t maxZoom,
Style&,
std::vector<util::ptr<StyleLayer>>,
const std::atomic<TileData::State>&,
@@ -58,7 +57,6 @@ private:
const TileID id;
const std::string sourceID;
- const uint16_t maxZoom;
Style& style;
const std::atomic<TileData::State>& state;
diff --git a/src/mbgl/map/vector_tile_data.cpp b/src/mbgl/map/vector_tile_data.cpp
index 433208bdf3..048e7083bf 100644
--- a/src/mbgl/map/vector_tile_data.cpp
+++ b/src/mbgl/map/vector_tile_data.cpp
@@ -22,7 +22,6 @@ VectorTileData::VectorTileData(const TileID& id_,
worker(style_.workers),
tileWorker(id_,
source_.source_id,
- source_.max_zoom,
style_,
style_.layers,
state,