summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-04-20 14:29:58 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2020-04-20 21:54:31 +0300
commitac6c5d9ce09b76f0de3872589437b22c1c4984ac (patch)
treeade667171d70f5777ad78860fd0c2627a14c25ac
parent183a634b626cd2a7f6de85108e6852cf03f80bf3 (diff)
downloadqtlocation-mapboxgl-ac6c5d9ce09b76f0de3872589437b22c1c4984ac.tar.gz
[core] Tile pyramid passes minimum update interval to tiles
-rw-r--r--src/mbgl/renderer/tile_pyramid.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/mbgl/renderer/tile_pyramid.cpp b/src/mbgl/renderer/tile_pyramid.cpp
index 013e6a7f37..0e4986c7e9 100644
--- a/src/mbgl/renderer/tile_pyramid.cpp
+++ b/src/mbgl/renderer/tile_pyramid.cpp
@@ -92,6 +92,7 @@ void TilePyramid::update(const std::vector<Immutable<style::LayerProperties>>& l
const optional<uint8_t>& sourcePrefetchZoomDelta = sourceImpl.getPrefetchZoomDelta();
const optional<uint8_t>& maxParentTileOverscaleFactor = sourceImpl.getMaxOverscaleFactorForParentTiles();
+ const Duration minimumUpdateInterval = sourceImpl.getMinimumTileUpdateInterval();
std::vector<OverscaledTileID> idealTiles;
std::vector<OverscaledTileID> panTiles;
@@ -131,6 +132,7 @@ void TilePyramid::update(const std::vector<Immutable<style::LayerProperties>>& l
auto retainTileFn = [&](Tile& tile, TileNecessity necessity) -> void {
if (retain.emplace(tile.id).second) {
+ tile.setMinimumUpdateInterval(minimumUpdateInterval);
tile.setNecessity(necessity);
}
@@ -158,14 +160,11 @@ void TilePyramid::update(const std::vector<Immutable<style::LayerProperties>>& l
std::unique_ptr<Tile> tile = cache.pop(tileID);
if (!tile) {
tile = createTile(tileID);
- if (tile) {
- tile->setObserver(observer);
- tile->setLayers(layers);
- }
- }
- if (!tile) {
- return nullptr;
+ if (!tile) return nullptr;
}
+
+ tile->setObserver(observer);
+ tile->setLayers(layers);
return tiles.emplace(tileID, std::move(tile)).first->second.get();
};