summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer
diff options
context:
space:
mode:
authorAlexander Shalamov <alexander.shalamov@mapbox.com>2020-03-21 21:55:22 +0200
committerAlexander Shalamov <alexander.shalamov@mapbox.com>2020-04-01 16:18:55 -0400
commit15f73a06f2048d4b5f0481d54a79f3f349187b11 (patch)
tree5166ba99751b11d6a994d0f3825332caf04ccd64 /src/mbgl/renderer
parent09f7bbcf7c07cc360c933ab1637662397b7db674 (diff)
downloadqtlocation-mapboxgl-15f73a06f2048d4b5f0481d54a79f3f349187b11.tar.gz
[core] Add setMaxOverscaleFactorForParentTiles
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r--src/mbgl/renderer/sources/render_custom_geometry_source.cpp3
-rw-r--r--src/mbgl/renderer/sources/render_geojson_source.cpp3
-rw-r--r--src/mbgl/renderer/sources/render_raster_dem_source.cpp3
-rw-r--r--src/mbgl/renderer/sources/render_raster_source.cpp3
-rw-r--r--src/mbgl/renderer/sources/render_vector_source.cpp3
-rw-r--r--src/mbgl/renderer/tile_pyramid.cpp26
-rw-r--r--src/mbgl/renderer/tile_pyramid.hpp3
7 files changed, 32 insertions, 12 deletions
diff --git a/src/mbgl/renderer/sources/render_custom_geometry_source.cpp b/src/mbgl/renderer/sources/render_custom_geometry_source.cpp
index a54802b21b..ecb74b6503 100644
--- a/src/mbgl/renderer/sources/render_custom_geometry_source.cpp
+++ b/src/mbgl/renderer/sources/render_custom_geometry_source.cpp
@@ -53,7 +53,8 @@ void RenderCustomGeometrySource::update(Immutable<style::Source::Impl> baseImpl_
return std::make_unique<CustomGeometryTile>(
tileID, impl().id, parameters, impl().getTileOptions(), *tileLoader);
},
- baseImpl->getPrefetchZoomDelta());
+ baseImpl->getPrefetchZoomDelta(),
+ baseImpl->getMaxOverscaleFactorForParentTiles());
}
} // namespace mbgl
diff --git a/src/mbgl/renderer/sources/render_geojson_source.cpp b/src/mbgl/renderer/sources/render_geojson_source.cpp
index 490abe8a6b..4083a96500 100644
--- a/src/mbgl/renderer/sources/render_geojson_source.cpp
+++ b/src/mbgl/renderer/sources/render_geojson_source.cpp
@@ -118,7 +118,8 @@ void RenderGeoJSONSource::update(Immutable<style::Source::Impl> baseImpl_,
[&, data_](const OverscaledTileID& tileID) {
return std::make_unique<GeoJSONTile>(tileID, impl().id, parameters, data_);
},
- baseImpl->getPrefetchZoomDelta());
+ baseImpl->getPrefetchZoomDelta(),
+ baseImpl->getMaxOverscaleFactorForParentTiles());
}
mapbox::util::variant<Value, FeatureCollection>
diff --git a/src/mbgl/renderer/sources/render_raster_dem_source.cpp b/src/mbgl/renderer/sources/render_raster_dem_source.cpp
index 953484f6c6..9b2345f8e0 100644
--- a/src/mbgl/renderer/sources/render_raster_dem_source.cpp
+++ b/src/mbgl/renderer/sources/render_raster_dem_source.cpp
@@ -37,7 +37,8 @@ void RenderRasterDEMSource::updateInternal(const Tileset& tileset,
tileset.zoomRange,
tileset.bounds,
[&](const OverscaledTileID& tileID) { return std::make_unique<RasterDEMTile>(tileID, parameters, tileset); },
- baseImpl->getPrefetchZoomDelta());
+ baseImpl->getPrefetchZoomDelta(),
+ baseImpl->getMaxOverscaleFactorForParentTiles());
algorithm::updateTileMasks(tilePyramid.getRenderedTiles());
}
diff --git a/src/mbgl/renderer/sources/render_raster_source.cpp b/src/mbgl/renderer/sources/render_raster_source.cpp
index 7ef7b26459..f759623cdd 100644
--- a/src/mbgl/renderer/sources/render_raster_source.cpp
+++ b/src/mbgl/renderer/sources/render_raster_source.cpp
@@ -35,7 +35,8 @@ void RenderRasterSource::updateInternal(const Tileset& tileset,
tileset.zoomRange,
tileset.bounds,
[&](const OverscaledTileID& tileID) { return std::make_unique<RasterTile>(tileID, parameters, tileset); },
- baseImpl->getPrefetchZoomDelta());
+ baseImpl->getPrefetchZoomDelta(),
+ baseImpl->getMaxOverscaleFactorForParentTiles());
algorithm::updateTileMasks(tilePyramid.getRenderedTiles());
}
diff --git a/src/mbgl/renderer/sources/render_vector_source.cpp b/src/mbgl/renderer/sources/render_vector_source.cpp
index 324599d45d..3ac16a136f 100644
--- a/src/mbgl/renderer/sources/render_vector_source.cpp
+++ b/src/mbgl/renderer/sources/render_vector_source.cpp
@@ -33,7 +33,8 @@ void RenderVectorSource::updateInternal(const Tileset& tileset,
[&](const OverscaledTileID& tileID) {
return std::make_unique<VectorTile>(tileID, baseImpl->id, parameters, tileset);
},
- baseImpl->getPrefetchZoomDelta());
+ baseImpl->getPrefetchZoomDelta(),
+ baseImpl->getMaxOverscaleFactorForParentTiles());
}
} // namespace mbgl
diff --git a/src/mbgl/renderer/tile_pyramid.cpp b/src/mbgl/renderer/tile_pyramid.cpp
index f7f02f5582..c456bf6e24 100644
--- a/src/mbgl/renderer/tile_pyramid.cpp
+++ b/src/mbgl/renderer/tile_pyramid.cpp
@@ -58,7 +58,8 @@ void TilePyramid::update(const std::vector<Immutable<style::LayerProperties>>& l
const Range<uint8_t> zoomRange,
optional<LatLngBounds> bounds,
std::function<std::unique_ptr<Tile>(const OverscaledTileID&)> createTile,
- optional<uint8_t> sourcePrefetchZoomDelta) {
+ const optional<uint8_t>& sourcePrefetchZoomDelta,
+ const optional<uint8_t>& maxParentTileOverscaleFactor) {
// If we need a relayout, abandon any cached tiles; they're now stale.
if (needsRelayout) {
cache.clear();
@@ -177,13 +178,26 @@ void TilePyramid::update(const std::vector<Immutable<style::LayerProperties>>& l
renderedTiles.clear();
if (!panTiles.empty()) {
- algorithm::updateRenderables(getTileFn, createTileFn, retainTileFn,
- [](const UnwrappedTileID&, Tile&) {}, panTiles, zoomRange, panZoom);
+ algorithm::updateRenderables(
+ getTileFn,
+ createTileFn,
+ retainTileFn,
+ [](const UnwrappedTileID&, Tile&) {},
+ panTiles,
+ zoomRange,
+ panZoom,
+ maxParentTileOverscaleFactor);
}
- algorithm::updateRenderables(getTileFn, createTileFn, retainTileFn, renderTileFn,
- idealTiles, zoomRange, tileZoom);
-
+ algorithm::updateRenderables(getTileFn,
+ createTileFn,
+ retainTileFn,
+ renderTileFn,
+ idealTiles,
+ zoomRange,
+ tileZoom,
+ maxParentTileOverscaleFactor);
+
for (auto previouslyRenderedTile : previouslyRenderedTiles) {
Tile& tile = previouslyRenderedTile.second;
tile.markRenderedPreviously();
diff --git a/src/mbgl/renderer/tile_pyramid.hpp b/src/mbgl/renderer/tile_pyramid.hpp
index 5f2bfd1ea9..7dd2ab5341 100644
--- a/src/mbgl/renderer/tile_pyramid.hpp
+++ b/src/mbgl/renderer/tile_pyramid.hpp
@@ -42,7 +42,8 @@ public:
Range<uint8_t> zoomRange,
optional<LatLngBounds> bounds,
std::function<std::unique_ptr<Tile>(const OverscaledTileID&)> createTile,
- optional<uint8_t> sourcePrefetchZoomDelta);
+ const optional<uint8_t>& sourcePrefetchZoomDelta,
+ const optional<uint8_t>& maxParentTileOverscaleFactor);
const std::map<UnwrappedTileID, std::reference_wrapper<Tile>>& getRenderedTiles() const { return renderedTiles; }
Tile* getTile(const OverscaledTileID&);