diff options
author | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2020-03-21 21:55:22 +0200 |
---|---|---|
committer | Alexander Shalamov <alexander.shalamov@mapbox.com> | 2020-04-01 16:18:55 -0400 |
commit | 15f73a06f2048d4b5f0481d54a79f3f349187b11 (patch) | |
tree | 5166ba99751b11d6a994d0f3825332caf04ccd64 /src/mbgl/renderer | |
parent | 09f7bbcf7c07cc360c933ab1637662397b7db674 (diff) | |
download | qtlocation-mapboxgl-15f73a06f2048d4b5f0481d54a79f3f349187b11.tar.gz |
[core] Add setMaxOverscaleFactorForParentTiles
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r-- | src/mbgl/renderer/sources/render_custom_geometry_source.cpp | 3 | ||||
-rw-r--r-- | src/mbgl/renderer/sources/render_geojson_source.cpp | 3 | ||||
-rw-r--r-- | src/mbgl/renderer/sources/render_raster_dem_source.cpp | 3 | ||||
-rw-r--r-- | src/mbgl/renderer/sources/render_raster_source.cpp | 3 | ||||
-rw-r--r-- | src/mbgl/renderer/sources/render_vector_source.cpp | 3 | ||||
-rw-r--r-- | src/mbgl/renderer/tile_pyramid.cpp | 26 | ||||
-rw-r--r-- | src/mbgl/renderer/tile_pyramid.hpp | 3 |
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&); |