summaryrefslogtreecommitdiff
path: root/src/mbgl/tile/geometry_tile.cpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-11-22 13:58:21 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-11-29 11:12:55 +0200
commit06c80cae3c36b196fab6adc1320c11444a52a26e (patch)
tree84fce181b37c6323df4d17dc68c56e10aede90d4 /src/mbgl/tile/geometry_tile.cpp
parent6419cd0ab2ba877bbae51ae7590ddba47765dac7 (diff)
downloadqtlocation-mapboxgl-06c80cae3c36b196fab6adc1320c11444a52a26e.tar.gz
[core] Introduce GeometryTile::reset()
The newly introduced `GeometryTile::reset()` is used while GeoJSON tile update in order to prevent from the parsing of the new data with the stale layers or vice verse.
Diffstat (limited to 'src/mbgl/tile/geometry_tile.cpp')
-rw-r--r--src/mbgl/tile/geometry_tile.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mbgl/tile/geometry_tile.cpp b/src/mbgl/tile/geometry_tile.cpp
index 4a3d91455a..7df81fa30f 100644
--- a/src/mbgl/tile/geometry_tile.cpp
+++ b/src/mbgl/tile/geometry_tile.cpp
@@ -176,14 +176,23 @@ void GeometryTile::setError(std::exception_ptr err) {
observer->onTileError(*this, err);
}
-void GeometryTile::setData(std::unique_ptr<const GeometryTileData> data_, bool resetLayers) {
+void GeometryTile::setData(std::unique_ptr<const GeometryTileData> data_) {
// Mark the tile as pending again if it was complete before to prevent signaling a complete
// state despite pending parse operations.
pending = true;
++correlationID;
worker.self().invoke(
- &GeometryTileWorker::setData, std::move(data_), imageManager.getAvailableImages(), resetLayers, correlationID);
+ &GeometryTileWorker::setData, std::move(data_), imageManager.getAvailableImages(), correlationID);
+}
+
+void GeometryTile::reset() {
+ // Mark the tile as pending again if it was complete before to prevent signaling a complete
+ // state despite pending parse operations.
+ pending = true;
+
+ ++correlationID;
+ worker.self().invoke(&GeometryTileWorker::reset, correlationID);
}
std::unique_ptr<TileRenderData> GeometryTile::createRenderData() {