[core] Source::setVolatile enables Resource::StoragePolicy::Volatile for tiles
This commit is contained in:
@@ -93,6 +93,7 @@ void TilePyramid::update(const std::vector<Immutable<style::LayerProperties>>& l
|
||||
const optional<uint8_t>& sourcePrefetchZoomDelta = sourceImpl.getPrefetchZoomDelta();
|
||||
const optional<uint8_t>& maxParentTileOverscaleFactor = sourceImpl.getMaxOverscaleFactorForParentTiles();
|
||||
const Duration minimumUpdateInterval = sourceImpl.getMinimumTileUpdateInterval();
|
||||
const bool isVolatile = sourceImpl.isVolatile();
|
||||
|
||||
std::vector<OverscaledTileID> idealTiles;
|
||||
std::vector<OverscaledTileID> panTiles;
|
||||
@@ -132,7 +133,7 @@ void TilePyramid::update(const std::vector<Immutable<style::LayerProperties>>& l
|
||||
|
||||
auto retainTileFn = [&](Tile& tile, TileNecessity necessity) -> void {
|
||||
if (retain.emplace(tile.id).second) {
|
||||
tile.setUpdateParameters({minimumUpdateInterval});
|
||||
tile.setUpdateParameters({minimumUpdateInterval, isVolatile});
|
||||
tile.setNecessity(necessity);
|
||||
}
|
||||
|
||||
|
||||
@@ -36,10 +36,11 @@ class UploadPass;
|
||||
|
||||
struct TileUpdateParameters {
|
||||
Duration minimumUpdateInterval;
|
||||
bool isVolatile;
|
||||
};
|
||||
|
||||
inline bool operator==(const TileUpdateParameters& a, const TileUpdateParameters& b) {
|
||||
return a.minimumUpdateInterval == b.minimumUpdateInterval;
|
||||
return a.minimumUpdateInterval == b.minimumUpdateInterval && a.isVolatile == b.isVolatile;
|
||||
}
|
||||
|
||||
inline bool operator!=(const TileUpdateParameters& a, const TileUpdateParameters& b) {
|
||||
|
||||
@@ -49,7 +49,7 @@ private:
|
||||
Resource resource;
|
||||
std::shared_ptr<FileSource> fileSource;
|
||||
std::unique_ptr<AsyncRequest> request;
|
||||
TileUpdateParameters updateParameters{{Duration::zero()}};
|
||||
TileUpdateParameters updateParameters{Duration::zero(), false};
|
||||
};
|
||||
|
||||
} // namespace mbgl
|
||||
|
||||
@@ -160,6 +160,8 @@ void TileLoader<T>::loadFromNetwork() {
|
||||
// NetworkOnly request.
|
||||
resource.loadingMethod = Resource::LoadingMethod::NetworkOnly;
|
||||
resource.minimumUpdateInterval = updateParameters.minimumUpdateInterval;
|
||||
resource.storagePolicy =
|
||||
updateParameters.isVolatile ? Resource::StoragePolicy::Volatile : Resource::StoragePolicy::Permanent;
|
||||
request = fileSource->request(resource, [this](const Response& res) { loadedData(res); });
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user