summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-06-14 10:57:43 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-06-14 11:25:45 -0700
commit5bbcca832660f80c42e8bfdb5d1836ea8113bb19 (patch)
tree08f46011d920f7abd4c86e16f2040df2355cfdb1
parent9d3c4fbbb05d37802ebc15210b041392b4d48f15 (diff)
downloadqtlocation-mapboxgl-5bbcca832660f80c42e8bfdb5d1836ea8113bb19.tar.gz
[core] Add virtual Source::getTileSize()
-rw-r--r--platform/default/mbgl/storage/offline_download.cpp10
-rw-r--r--src/mbgl/annotation/annotation_source.cpp2
-rw-r--r--src/mbgl/annotation/annotation_source.hpp2
-rw-r--r--src/mbgl/style/source.cpp4
-rw-r--r--src/mbgl/style/source.hpp4
-rw-r--r--src/mbgl/style/sources/geojson_source.cpp2
-rw-r--r--src/mbgl/style/sources/geojson_source.hpp1
-rw-r--r--src/mbgl/style/tile_source.cpp3
-rw-r--r--src/mbgl/style/tile_source.hpp2
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;