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 19:06:26 +0300
commitfa547fc6c390528e5ca69737184c79f6363344be (patch)
treeade667171d70f5777ad78860fd0c2627a14c25ac
parentc9339751c79d4ff79d38fdb28b64df95877d9f5f (diff)
downloadqtlocation-mapboxgl-fa547fc6c390528e5ca69737184c79f6363344be.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();
};