diff options
author | Vladimir Agafonkin <agafonkin@gmail.com> | 2015-10-06 13:58:38 +0300 |
---|---|---|
committer | Vladimir Agafonkin <agafonkin@gmail.com> | 2015-10-06 14:25:00 +0300 |
commit | 453fd4c0b0ea6089b1f341870b4938dc92da63c8 (patch) | |
tree | 9f140deb3bba72df430da6f185c1d8044d4dd6ac /src/mbgl | |
parent | b869771992e2210f8c95f297074b8289a070c183 (diff) | |
download | qtlocation-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.cpp | 1 | ||||
-rw-r--r-- | src/mbgl/map/tile_worker.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/map/tile_worker.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/map/vector_tile_data.cpp | 1 |
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, |