summaryrefslogtreecommitdiff
path: root/src/mbgl/tile
diff options
context:
space:
mode:
authorAnsis Brammanis <ansis@mapbox.com>2018-01-10 16:52:00 -0500
committerAnsis Brammanis <ansis.brammanis@gmail.com>2018-01-11 14:07:00 -0500
commit6782d7af37f59afa13edac075727a2f89dc4f701 (patch)
treea979f357c7e41bdc37a4ff29dbea74ca9cc0e2cd /src/mbgl/tile
parentfff33ed7e71cf8bde24f7aa4bb37d0b0d9e19585 (diff)
downloadqtlocation-mapboxgl-6782d7af37f59afa13edac075727a2f89dc4f701.tar.gz
[core] fix symbol flickering after data updates
Diffstat (limited to 'src/mbgl/tile')
-rw-r--r--src/mbgl/tile/geometry_tile_worker.cpp7
-rw-r--r--src/mbgl/tile/geometry_tile_worker.hpp1
2 files changed, 7 insertions, 1 deletions
diff --git a/src/mbgl/tile/geometry_tile_worker.cpp b/src/mbgl/tile/geometry_tile_worker.cpp
index cf74bf3647..24841dd125 100644
--- a/src/mbgl/tile/geometry_tile_worker.cpp
+++ b/src/mbgl/tile/geometry_tile_worker.cpp
@@ -425,12 +425,17 @@ void GeometryTileWorker::attemptPlacement() {
continue;
}
- std::shared_ptr<Bucket> bucket = symbolLayout->place(showCollisionBoxes);
+ std::shared_ptr<SymbolBucket> bucket = symbolLayout->place(showCollisionBoxes);
for (const auto& pair : symbolLayout->layerPaintProperties) {
+ if (!firstLoad) {
+ bucket->justReloaded = true;
+ }
buckets.emplace(pair.first, bucket);
}
}
+ firstLoad = false;
+
parent.invoke(&GeometryTile::onPlacement, GeometryTile::PlacementResult {
std::move(buckets),
std::move(glyphAtlasImage),
diff --git a/src/mbgl/tile/geometry_tile_worker.hpp b/src/mbgl/tile/geometry_tile_worker.hpp
index cc86248cec..0276392679 100644
--- a/src/mbgl/tile/geometry_tile_worker.hpp
+++ b/src/mbgl/tile/geometry_tile_worker.hpp
@@ -86,6 +86,7 @@ private:
ImageMap imageMap;
bool showCollisionBoxes;
+ bool firstLoad = true;
};
} // namespace mbgl