From 453fd4c0b0ea6089b1f341870b4938dc92da63c8 Mon Sep 17 00:00:00 2001 From: Vladimir Agafonkin Date: Tue, 6 Oct 2015 13:58:38 +0300 Subject: [PATCH] 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 <. --- src/mbgl/map/live_tile_data.cpp | 1 - src/mbgl/map/tile_worker.cpp | 4 +--- src/mbgl/map/tile_worker.hpp | 2 -- src/mbgl/map/vector_tile_data.cpp | 1 - 4 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/mbgl/map/live_tile_data.cpp b/src/mbgl/map/live_tile_data.cpp index dec7d4026..15a1c6a3f 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 bbbfec1da..acf832009 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> layers_, const std::atomic& 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 6f5a9d512..53c5c9095 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>, const std::atomic&, @@ -58,7 +57,6 @@ private: const TileID id; const std::string sourceID; - const uint16_t maxZoom; Style& style; const std::atomic& state; diff --git a/src/mbgl/map/vector_tile_data.cpp b/src/mbgl/map/vector_tile_data.cpp index 433208bdf..048e7083b 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,