diff options
author | Antonio Zugaldia <antonio@mapbox.com> | 2016-11-15 12:16:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-15 12:16:47 +0100 |
commit | 0dd8852bf68d9fdd5c46bf4495d49161733cab4e (patch) | |
tree | 428cd32d0d9826d58a45fc9d27f28767528ff8b6 | |
parent | 6329e8a51a76e8bd8a8e898d4bcede96b7ab857f (diff) | |
download | qtlocation-mapboxgl-0dd8852bf68d9fdd5c46bf4495d49161733cab4e.tar.gz |
[core] don't run symbol placement more often than necessary (#7067)
-rw-r--r-- | src/mbgl/tile/geometry_tile.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/tile/geometry_tile.hpp | 3 | ||||
-rw-r--r-- | src/mbgl/tile/geometry_tile_worker.cpp | 1 |
3 files changed, 3 insertions, 5 deletions
diff --git a/src/mbgl/tile/geometry_tile.cpp b/src/mbgl/tile/geometry_tile.cpp index c77467ebc1..84455e4787 100644 --- a/src/mbgl/tile/geometry_tile.cpp +++ b/src/mbgl/tile/geometry_tile.cpp @@ -57,11 +57,12 @@ void GeometryTile::setData(std::unique_ptr<const GeometryTileData> data_) { } void GeometryTile::setPlacementConfig(const PlacementConfig& desiredConfig) { - if (placedConfig == desiredConfig) { + if (requestedConfig == desiredConfig) { return; } ++correlationID; + requestedConfig = desiredConfig; worker.invoke(&GeometryTileWorker::setPlacementConfig, desiredConfig, correlationID); } @@ -112,7 +113,6 @@ void GeometryTile::onPlacement(PlacementResult result) { buckets[bucket.first] = std::move(bucket.second); } featureIndex->setCollisionTile(std::move(result.collisionTile)); - placedConfig = result.placedConfig; observer->onTileChanged(*this); } diff --git a/src/mbgl/tile/geometry_tile.hpp b/src/mbgl/tile/geometry_tile.hpp index cb3ca54633..86243e8a09 100644 --- a/src/mbgl/tile/geometry_tile.hpp +++ b/src/mbgl/tile/geometry_tile.hpp @@ -61,7 +61,6 @@ public: public: std::unordered_map<std::string, std::unique_ptr<Bucket>> buckets; std::unique_ptr<CollisionTile> collisionTile; - PlacementConfig placedConfig; uint64_t correlationID; }; void onPlacement(PlacementResult); @@ -79,7 +78,7 @@ private: Actor<GeometryTileWorker> worker; uint64_t correlationID = 0; - optional<PlacementConfig> placedConfig; + optional<PlacementConfig> requestedConfig; std::unordered_map<std::string, std::unique_ptr<Bucket>> buckets; std::unique_ptr<FeatureIndex> featureIndex; diff --git a/src/mbgl/tile/geometry_tile_worker.cpp b/src/mbgl/tile/geometry_tile_worker.cpp index 6ff3c67793..abb3894d34 100644 --- a/src/mbgl/tile/geometry_tile_worker.cpp +++ b/src/mbgl/tile/geometry_tile_worker.cpp @@ -321,7 +321,6 @@ void GeometryTileWorker::attemptPlacement() { parent.invoke(&GeometryTile::onPlacement, GeometryTile::PlacementResult { std::move(buckets), std::move(collisionTile), - *placementConfig, correlationID }); } |