diff options
-rw-r--r-- | platform/default/mbgl/storage/offline_download.cpp | 10 | ||||
-rw-r--r-- | src/mbgl/annotation/annotation_source.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/annotation/annotation_source.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/source.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/style/source.hpp | 4 | ||||
-rw-r--r-- | src/mbgl/style/sources/geojson_source.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/sources/geojson_source.hpp | 1 | ||||
-rw-r--r-- | src/mbgl/style/tile_source.cpp | 3 | ||||
-rw-r--r-- | src/mbgl/style/tile_source.hpp | 2 |
9 files changed, 18 insertions, 12 deletions
diff --git a/platform/default/mbgl/storage/offline_download.cpp b/platform/default/mbgl/storage/offline_download.cpp index 04aabeb04f..8a156dd649 100644 --- a/platform/default/mbgl/storage/offline_download.cpp +++ b/platform/default/mbgl/storage/offline_download.cpp @@ -108,13 +108,13 @@ OfflineRegionStatus OfflineDownload::getStatus() const { case SourceType::Raster: { style::TileSource* tileSource = static_cast<style::TileSource*>(source.get()); if (tileSource->getTileset()) { - result.requiredResourceCount += tileResources(source->type, source->tileSize, *tileSource->getTileset()).size(); + result.requiredResourceCount += tileResources(source->type, tileSource->getTileSize(), *tileSource->getTileset()).size(); } else { result.requiredResourceCount += 1; optional<Response> sourceResponse = offlineDatabase.get(Resource::source(tileSource->getURL())); if (sourceResponse) { - result.requiredResourceCount += tileResources(source->type, source->tileSize, - *style::parseTileJSON(*sourceResponse->data, tileSource->getURL(), source->type, source->tileSize)).size(); + result.requiredResourceCount += tileResources(source->type, tileSource->getTileSize(), + *style::parseTileJSON(*sourceResponse->data, tileSource->getURL(), source->type, tileSource->getTileSize())).size(); } else { result.requiredResourceCountIsPrecise = false; } @@ -156,12 +156,12 @@ void OfflineDownload::activateDownload() { for (const auto& source : parser.sources) { SourceType type = source->type; - uint16_t tileSize = source->tileSize; switch (type) { case SourceType::Vector: case SourceType::Raster: { - style::TileSource* tileSource = static_cast<style::TileSource*>(source.get()); + const style::TileSource* tileSource = static_cast<style::TileSource*>(source.get()); + const uint16_t tileSize = tileSource->getTileSize(); if (tileSource->getTileset()) { ensureTiles(type, tileSize, *tileSource->getTileset()); } else { diff --git a/src/mbgl/annotation/annotation_source.cpp b/src/mbgl/annotation/annotation_source.cpp index 637109ff8d..2c87c4f207 100644 --- a/src/mbgl/annotation/annotation_source.cpp +++ b/src/mbgl/annotation/annotation_source.cpp @@ -5,7 +5,7 @@ namespace mbgl { AnnotationSource::AnnotationSource() - : Source(SourceType::Annotations, AnnotationManager::SourceID, util::tileSize) { + : Source(SourceType::Annotations, AnnotationManager::SourceID) { } Range<uint8_t> AnnotationSource::getZoomRange() { diff --git a/src/mbgl/annotation/annotation_source.hpp b/src/mbgl/annotation/annotation_source.hpp index 830be519c2..e8d3b43e09 100644 --- a/src/mbgl/annotation/annotation_source.hpp +++ b/src/mbgl/annotation/annotation_source.hpp @@ -11,7 +11,9 @@ public: void load(FileSource&) final; private: + uint16_t getTileSize() const final { return util::tileSize; } Range<uint8_t> getZoomRange() final; + std::unique_ptr<Tile> createTile(const OverscaledTileID&, const style::UpdateParameters&) final; }; diff --git a/src/mbgl/style/source.cpp b/src/mbgl/style/source.cpp index 21fb7fee36..ca0943918b 100644 --- a/src/mbgl/style/source.cpp +++ b/src/mbgl/style/source.cpp @@ -32,10 +32,9 @@ namespace style { static SourceObserver nullObserver; -Source::Source(SourceType type_, std::string id_, uint16_t tileSize_) +Source::Source(SourceType type_, std::string id_) : type(type_), id(std::move(id_)), - tileSize(tileSize_), observer(&nullObserver) { } @@ -94,6 +93,7 @@ bool Source::update(const UpdateParameters& parameters) { return allTilesUpdated; } + const uint16_t tileSize = getTileSize(); const Range<uint8_t> zoomRange = getZoomRange(); // Determine the overzooming/underzooming amounts and required tiles. diff --git a/src/mbgl/style/source.hpp b/src/mbgl/style/source.hpp index 99d634a887..575297e326 100644 --- a/src/mbgl/style/source.hpp +++ b/src/mbgl/style/source.hpp @@ -32,7 +32,7 @@ class SourceObserver; class Source : public TileObserver, private util::noncopyable { public: - Source(SourceType, std::string id, uint16_t tileSize); + Source(SourceType, std::string id); ~Source() override; bool loaded = false; @@ -68,7 +68,6 @@ public: const SourceType type; const std::string id; - uint16_t tileSize = util::tileSize; bool enabled = false; private: @@ -77,6 +76,7 @@ private: void onTileError(Tile&, std::exception_ptr) override; void onNeedsRepaint() override; + virtual uint16_t getTileSize() const = 0; virtual Range<uint8_t> getZoomRange() = 0; virtual std::unique_ptr<Tile> createTile(const OverscaledTileID&, const UpdateParameters&) = 0; diff --git a/src/mbgl/style/sources/geojson_source.cpp b/src/mbgl/style/sources/geojson_source.cpp index 7daf148291..01089f2eec 100644 --- a/src/mbgl/style/sources/geojson_source.cpp +++ b/src/mbgl/style/sources/geojson_source.cpp @@ -63,7 +63,7 @@ std::unique_ptr<GeoJSONSource> GeoJSONSource::parse(const std::string& id, GeoJSONSource::GeoJSONSource(std::string id_, std::string url_, std::unique_ptr<mapbox::geojsonvt::GeoJSONVT>&& geojsonvt_) - : Source(SourceType::GeoJSON, std::move(id_), util::tileSize), + : Source(SourceType::GeoJSON, std::move(id_)), url(url_), geojsonvt(std::move(geojsonvt_)) { } diff --git a/src/mbgl/style/sources/geojson_source.hpp b/src/mbgl/style/sources/geojson_source.hpp index 996dac3aca..00d245c878 100644 --- a/src/mbgl/style/sources/geojson_source.hpp +++ b/src/mbgl/style/sources/geojson_source.hpp @@ -31,6 +31,7 @@ public: const std::string& getURL() const { return url; } private: + uint16_t getTileSize() const final { return util::tileSize; } Range<uint8_t> getZoomRange() final; std::unique_ptr<Tile> createTile(const OverscaledTileID&, const UpdateParameters&) final; diff --git a/src/mbgl/style/tile_source.cpp b/src/mbgl/style/tile_source.cpp index 29cbcc7226..a4deb17c4f 100644 --- a/src/mbgl/style/tile_source.cpp +++ b/src/mbgl/style/tile_source.cpp @@ -12,7 +12,8 @@ TileSource::TileSource(SourceType type_, std::string url_, uint16_t tileSize_, std::unique_ptr<Tileset>&& tileset_) - : Source(type_, std::move(id_), tileSize_), + : Source(type_, std::move(id_)), + tileSize(tileSize_), url(std::move(url_)), tileset(std::move(tileset_)) { } diff --git a/src/mbgl/style/tile_source.hpp b/src/mbgl/style/tile_source.hpp index b001d174f6..bc97713a04 100644 --- a/src/mbgl/style/tile_source.hpp +++ b/src/mbgl/style/tile_source.hpp @@ -25,11 +25,13 @@ public: void load(FileSource&) final; const std::string& getURL() const { return url; } + uint16_t getTileSize() const final { return tileSize; } const Tileset* getTileset() const { return tileset.get(); } protected: Range<uint8_t> getZoomRange() final; + const uint16_t tileSize; const std::string url; std::unique_ptr<const Tileset> tileset; std::unique_ptr<AsyncRequest> req; |