summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/sources
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-01-16 14:35:13 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-01-16 16:16:18 +0200
commitac3d59862a6632de0cd5076ba2a65f4e4a4577f4 (patch)
tree1bd606b14c3ef01413e937df142dc255f2f0066d /src/mbgl/renderer/sources
parente0aeeba10f5d36be010ba773443aa8edd74343f5 (diff)
downloadqtlocation-mapboxgl-ac3d59862a6632de0cd5076ba2a65f4e4a4577f4.tar.gz
[core] TilePyramid has sorted render tiles
Thus we obviate unneeded extra sorting of render tiles at each render layer.
Diffstat (limited to 'src/mbgl/renderer/sources')
-rw-r--r--src/mbgl/renderer/sources/render_geojson_source.cpp7
-rw-r--r--src/mbgl/renderer/sources/render_raster_dem_source.cpp4
-rw-r--r--src/mbgl/renderer/sources/render_raster_source.cpp4
-rw-r--r--src/mbgl/renderer/sources/render_vector_source.cpp4
4 files changed, 6 insertions, 13 deletions
diff --git a/src/mbgl/renderer/sources/render_geojson_source.cpp b/src/mbgl/renderer/sources/render_geojson_source.cpp
index a688026788..5eb6a931d3 100644
--- a/src/mbgl/renderer/sources/render_geojson_source.cpp
+++ b/src/mbgl/renderer/sources/render_geojson_source.cpp
@@ -96,11 +96,11 @@ void RenderGeoJSONSource::update(Immutable<style::Source::Impl> baseImpl_,
if (data.lock() != data_) {
data = data_;
- tilePyramid.cache.clear();
+ tilePyramid.reduceMemoryUse();
if (data_) {
const uint8_t maxZ = impl().getZoomRange().max;
- for (const auto& pair : tilePyramid.tiles) {
+ for (const auto& pair : tilePyramid.getTiles()) {
if (pair.first.canonical.z <= maxZ) {
static_cast<GeoJSONTile*>(pair.second.get())->updateData(data_->getTile(pair.first.canonical));
}
@@ -109,8 +109,7 @@ void RenderGeoJSONSource::update(Immutable<style::Source::Impl> baseImpl_,
}
if (!data_) {
- tilePyramid.tiles.clear();
- tilePyramid.renderTiles.clear();
+ tilePyramid.clearAll();
return;
}
diff --git a/src/mbgl/renderer/sources/render_raster_dem_source.cpp b/src/mbgl/renderer/sources/render_raster_dem_source.cpp
index 2283a0e788..2bc3a91c7c 100644
--- a/src/mbgl/renderer/sources/render_raster_dem_source.cpp
+++ b/src/mbgl/renderer/sources/render_raster_dem_source.cpp
@@ -38,9 +38,7 @@ void RenderRasterDEMSource::update(Immutable<style::Source::Impl> baseImpl_,
maxzoom = tileset->zoomRange.max;
// TODO: this removes existing buckets, and will cause flickering.
// Should instead refresh tile data in place.
- tilePyramid.tiles.clear();
- tilePyramid.renderTiles.clear();
- tilePyramid.cache.clear();
+ tilePyramid.clearAll();
}
// Allow clearing the tile pyramid first, before the early return in case
// the new tileset is not yet available or has an error in loading
diff --git a/src/mbgl/renderer/sources/render_raster_source.cpp b/src/mbgl/renderer/sources/render_raster_source.cpp
index f97ce4e65b..017763b96a 100644
--- a/src/mbgl/renderer/sources/render_raster_source.cpp
+++ b/src/mbgl/renderer/sources/render_raster_source.cpp
@@ -36,9 +36,7 @@ void RenderRasterSource::update(Immutable<style::Source::Impl> baseImpl_,
// TODO: this removes existing buckets, and will cause flickering.
// Should instead refresh tile data in place.
- tilePyramid.tiles.clear();
- tilePyramid.renderTiles.clear();
- tilePyramid.cache.clear();
+ tilePyramid.clearAll();
}
// Allow clearing the tile pyramid first, before the early return in case
// the new tileset is not yet available or has an error in loading
diff --git a/src/mbgl/renderer/sources/render_vector_source.cpp b/src/mbgl/renderer/sources/render_vector_source.cpp
index 4de4f01e3f..61954a68e6 100644
--- a/src/mbgl/renderer/sources/render_vector_source.cpp
+++ b/src/mbgl/renderer/sources/render_vector_source.cpp
@@ -39,9 +39,7 @@ void RenderVectorSource::update(Immutable<style::Source::Impl> baseImpl_,
// TODO: this removes existing buckets, and will cause flickering.
// Should instead refresh tile data in place.
- tilePyramid.tiles.clear();
- tilePyramid.renderTiles.clear();
- tilePyramid.cache.clear();
+ tilePyramid.clearAll();
}
// Allow clearing the tile pyramid first, before the early return in case
// the new tileset is not yet available or has an error in loading