diff options
author | Ansis Brammanis <ansis@mapbox.com> | 2018-01-10 16:52:00 -0500 |
---|---|---|
committer | Ansis Brammanis <ansis.brammanis@gmail.com> | 2018-01-11 14:07:00 -0500 |
commit | 6782d7af37f59afa13edac075727a2f89dc4f701 (patch) | |
tree | a979f357c7e41bdc37a4ff29dbea74ca9cc0e2cd /src/mbgl/tile | |
parent | fff33ed7e71cf8bde24f7aa4bb37d0b0d9e19585 (diff) | |
download | qtlocation-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.cpp | 7 | ||||
-rw-r--r-- | src/mbgl/tile/geometry_tile_worker.hpp | 1 |
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 |