[core] Invalidate cached tiles of disabled sources on relayout
This commit is contained in:
Submodule mapbox-gl-js updated: e3b2df2807...1bc8caa7c6
@@ -51,6 +51,9 @@ public:
|
||||
// Removes all tiles (by putting them into the cache).
|
||||
void removeTiles();
|
||||
|
||||
// Remove all tiles and clear the cache.
|
||||
void invalidateTiles();
|
||||
|
||||
// Request that all loaded tiles re-run the layout operation on the existing source
|
||||
// data with fresh style information.
|
||||
void reloadTiles();
|
||||
@@ -92,15 +95,14 @@ public:
|
||||
void detach();
|
||||
|
||||
protected:
|
||||
void invalidateTiles();
|
||||
void removeStaleTiles(const std::set<OverscaledTileID>&);
|
||||
|
||||
Source& base;
|
||||
SourceObserver* observer = nullptr;
|
||||
std::map<OverscaledTileID, std::unique_ptr<Tile>> tiles;
|
||||
TileCache cache;
|
||||
|
||||
private:
|
||||
void removeStaleTiles(const std::set<OverscaledTileID>&);
|
||||
|
||||
// TileObserver implementation.
|
||||
void onTileChanged(Tile&) override;
|
||||
void onTileError(Tile&, std::exception_ptr) override;
|
||||
|
||||
@@ -279,6 +279,8 @@ void Style::relayout() {
|
||||
Source* source = getSource(sourceID);
|
||||
if (source && source->baseImpl->enabled) {
|
||||
source->baseImpl->reloadTiles();
|
||||
} else if (source) {
|
||||
source->baseImpl->invalidateTiles();
|
||||
}
|
||||
}
|
||||
updateBatch.sourceIDs.clear();
|
||||
|
||||
Reference in New Issue
Block a user