diff options
Diffstat (limited to 'src/mbgl/text/cross_tile_symbol_index.hpp')
-rw-r--r-- | src/mbgl/text/cross_tile_symbol_index.hpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mbgl/text/cross_tile_symbol_index.hpp b/src/mbgl/text/cross_tile_symbol_index.hpp index 995e0061b9..5abcde241c 100644 --- a/src/mbgl/text/cross_tile_symbol_index.hpp +++ b/src/mbgl/text/cross_tile_symbol_index.hpp @@ -6,6 +6,7 @@ #include <mbgl/util/optional.hpp> #include <map> +#include <set> #include <vector> #include <string> #include <memory> @@ -32,7 +33,7 @@ public: TileLayerIndex(OverscaledTileID coord, std::vector<SymbolInstance>&, uint32_t bucketInstanceId); Point<int64_t> getScaledCoordinates(SymbolInstance&, const OverscaledTileID&); - void findMatches(std::vector<SymbolInstance>&, const OverscaledTileID&); + void findMatches(std::vector<SymbolInstance>&, const OverscaledTileID&, std::set<uint32_t>&); OverscaledTileID coord; uint32_t bucketInstanceId; @@ -45,7 +46,10 @@ public: bool addBucket(const OverscaledTileID&, SymbolBucket&, uint32_t& maxCrossTileID); bool removeStaleBuckets(const std::unordered_set<uint32_t>& currentIDs); private: - std::map<uint8_t,std::map<OverscaledTileID,TileLayerIndex>> indexes; + void removeBucketCrossTileIDs(uint8_t zoom, const TileLayerIndex& removedBucket); + + std::map<uint8_t, std::map<OverscaledTileID,TileLayerIndex>> indexes; + std::map<uint8_t, std::set<uint32_t>> usedCrossTileIDs; }; class CrossTileSymbolIndex { |