diff options
Diffstat (limited to 'src/mbgl/algorithm/update_renderables.hpp')
-rw-r--r-- | src/mbgl/algorithm/update_renderables.hpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/mbgl/algorithm/update_renderables.hpp b/src/mbgl/algorithm/update_renderables.hpp index 316ada8269..91eb058638 100644 --- a/src/mbgl/algorithm/update_renderables.hpp +++ b/src/mbgl/algorithm/update_renderables.hpp @@ -21,19 +21,18 @@ void updateRenderables(GetTileFn getTile, RenderTileFn renderTile, const IdealTileIDs& idealTileIDs, const Range<uint8_t>& zoomRange, - const uint8_t dataTileZoom, const optional<uint8_t>& maxParentOverscaleFactor = nullopt) { std::unordered_set<OverscaledTileID> checked; bool covered; int32_t overscaledZ; // for (all in the set of ideal tiles of the source) { - for (const auto& idealRenderTileID : idealTileIDs) { - assert(idealRenderTileID.canonical.z >= zoomRange.min); - assert(idealRenderTileID.canonical.z <= zoomRange.max); - assert(dataTileZoom >= idealRenderTileID.canonical.z); + for (const auto& idealDataTileID : idealTileIDs) { + assert(idealDataTileID.canonical.z >= zoomRange.min); + assert(idealDataTileID.canonical.z <= zoomRange.max); + assert(idealDataTileID.overscaledZ >= idealDataTileID.canonical.z); - const OverscaledTileID idealDataTileID(dataTileZoom, idealRenderTileID.wrap, idealRenderTileID.canonical); + const UnwrappedTileID idealRenderTileID = idealDataTileID.toUnwrapped(); auto tile = getTile(idealDataTileID); if (!tile) { tile = createTile(idealDataTileID); @@ -56,7 +55,7 @@ void updateRenderables(GetTileFn getTile, // The tile isn't loaded yet, but retain it anyway because it's an ideal tile. retainTile(*tile, TileNecessity::Required); covered = true; - overscaledZ = dataTileZoom + 1; + overscaledZ = idealDataTileID.overscaledZ + 1; if (overscaledZ > zoomRange.max) { // We're looking for an overzoomed child tile. const auto childDataTileID = idealDataTileID.scaledTo(overscaledZ); @@ -85,11 +84,12 @@ void updateRenderables(GetTileFn getTile, if (!covered) { // We couldn't find child tiles that entirely cover the ideal tile. - for (overscaledZ = dataTileZoom - 1; overscaledZ >= zoomRange.min; --overscaledZ) { + for (overscaledZ = idealDataTileID.overscaledZ - 1; overscaledZ >= zoomRange.min; --overscaledZ) { const auto parentDataTileID = idealDataTileID.scaledTo(overscaledZ); // Request / render parent tile only if it's overscale factor is less than defined maximum. - if (maxParentOverscaleFactor && (dataTileZoom - overscaledZ) > *maxParentOverscaleFactor) { + if (maxParentOverscaleFactor && + (idealDataTileID.overscaledZ - overscaledZ) > *maxParentOverscaleFactor) { break; } |