diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-06-14 10:55:58 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-06-14 11:25:45 -0700 |
commit | 9dfcb95e4fe333922306eadd4df5cbde2f03a6c1 (patch) | |
tree | 61c7fb9d3dede6097bda1fd35806131cb21ab957 /src/mbgl | |
parent | 755cc80edfc53a680030a88a661afe1d9edd1f75 (diff) | |
download | qtlocation-mapboxgl-9dfcb95e4fe333922306eadd4df5cbde2f03a6c1.tar.gz |
[core] Push Source::tileset down to TileSource
Diffstat (limited to 'src/mbgl')
-rw-r--r-- | src/mbgl/annotation/annotation_source.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/style/parser.cpp | 1 | ||||
-rw-r--r-- | src/mbgl/style/parser.hpp | 3 | ||||
-rw-r--r-- | src/mbgl/style/source.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/style/source.hpp | 10 | ||||
-rw-r--r-- | src/mbgl/style/sources/geojson_source.cpp | 10 | ||||
-rw-r--r-- | src/mbgl/style/sources/geojson_source.hpp | 1 | ||||
-rw-r--r-- | src/mbgl/style/tile_source.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/style/tile_source.hpp | 6 |
9 files changed, 18 insertions, 23 deletions
diff --git a/src/mbgl/annotation/annotation_source.cpp b/src/mbgl/annotation/annotation_source.cpp index f246d7aed8..55e6fc82a3 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, std::make_unique<Tileset>()) { + : Source(SourceType::Annotations, AnnotationManager::SourceID, "", util::tileSize) { } Range<uint8_t> AnnotationSource::getZoomRange() { diff --git a/src/mbgl/style/parser.cpp b/src/mbgl/style/parser.cpp index 1ca090643d..07db3f0091 100644 --- a/src/mbgl/style/parser.cpp +++ b/src/mbgl/style/parser.cpp @@ -15,6 +15,7 @@ #include <mbgl/tile/geometry_tile_data.hpp> #include <mbgl/util/mapbox.hpp> #include <mbgl/util/enum.hpp> +#include <mbgl/util/tileset.hpp> #include <rapidjson/document.h> #include <rapidjson/error/en.h> diff --git a/src/mbgl/style/parser.hpp b/src/mbgl/style/parser.hpp index e60a33b93f..a04f73bde4 100644 --- a/src/mbgl/style/parser.hpp +++ b/src/mbgl/style/parser.hpp @@ -14,6 +14,9 @@ #include <forward_list> namespace mbgl { + +class Tileset; + namespace style { std::unique_ptr<Tileset> parseTileJSON(const std::string& json, const std::string& sourceURL, SourceType, uint16_t tileSize); diff --git a/src/mbgl/style/source.cpp b/src/mbgl/style/source.cpp index 086e0b745c..3c5690e980 100644 --- a/src/mbgl/style/source.cpp +++ b/src/mbgl/style/source.cpp @@ -35,13 +35,11 @@ static SourceObserver nullObserver; Source::Source(SourceType type_, std::string id_, std::string url_, - uint16_t tileSize_, - std::unique_ptr<Tileset>&& tileset_) + uint16_t tileSize_) : type(type_), id(std::move(id_)), url(std::move(url_)), tileSize(tileSize_), - tileset(std::move(tileset_)), observer(&nullObserver) { } diff --git a/src/mbgl/style/source.hpp b/src/mbgl/style/source.hpp index 862ee52068..36e6570fb5 100644 --- a/src/mbgl/style/source.hpp +++ b/src/mbgl/style/source.hpp @@ -10,9 +10,8 @@ #include <mbgl/util/mat4.hpp> #include <mbgl/util/rapidjson.hpp> #include <mbgl/util/feature.hpp> -#include <mbgl/util/tileset.hpp> +#include <mbgl/util/range.hpp> -#include <forward_list> #include <vector> #include <map> @@ -36,16 +35,13 @@ public: Source(SourceType, std::string id, std::string url, - uint16_t tileSize, - std::unique_ptr<Tileset>&&); + uint16_t tileSize); ~Source() override; bool loaded = false; virtual void load(FileSource&) = 0; bool isLoaded() const; - const Tileset* getTileset() const { return tileset.get(); } - // Request or parse all the tiles relevant for the "TransformState". This method // will return true if all the tiles were scheduled for updating of false if // they were not. shouldReparsePartialTiles must be set to "true" if there is @@ -91,8 +87,6 @@ private: protected: void invalidateTiles(); - std::unique_ptr<const Tileset> tileset; - SourceObserver* observer = nullptr; private: diff --git a/src/mbgl/style/sources/geojson_source.cpp b/src/mbgl/style/sources/geojson_source.cpp index dbcef95344..6e1068dadb 100644 --- a/src/mbgl/style/sources/geojson_source.cpp +++ b/src/mbgl/style/sources/geojson_source.cpp @@ -34,7 +34,6 @@ std::unique_ptr<mapbox::geojsonvt::GeoJSONVT> parseGeoJSON(const JSValue& value) std::unique_ptr<GeoJSONSource> GeoJSONSource::parse(const std::string& id, const JSValue& value) { - auto tileset = std::make_unique<Tileset>(); std::unique_ptr<mapbox::geojsonvt::GeoJSONVT> geojsonvt; std::string url; @@ -58,14 +57,13 @@ std::unique_ptr<GeoJSONSource> GeoJSONSource::parse(const std::string& id, return nullptr; } - return std::make_unique<GeoJSONSource>(id, url, std::move(tileset), std::move(geojsonvt)); + return std::make_unique<GeoJSONSource>(id, url, std::move(geojsonvt)); } GeoJSONSource::GeoJSONSource(std::string id_, std::string url_, - std::unique_ptr<Tileset>&& tileset_, std::unique_ptr<mapbox::geojsonvt::GeoJSONVT>&& geojsonvt_) - : Source(SourceType::GeoJSON, std::move(id_), std::move(url_), util::tileSize, std::move(tileset_)), + : Source(SourceType::GeoJSON, std::move(id_), std::move(url_), util::tileSize), geojsonvt(std::move(geojsonvt_)) { } @@ -94,8 +92,6 @@ void GeoJSONSource::load(FileSource& fileSource) { } else if (res.noContent) { observer->onSourceError(*this, std::make_exception_ptr(std::runtime_error("unexpectedly empty GeoJSON"))); } else { - std::unique_ptr<Tileset> newTileset = std::make_unique<Tileset>(); - rapidjson::GenericDocument<rapidjson::UTF8<>, rapidjson::CrtAllocator> d; d.Parse<0>(res.data->c_str()); @@ -107,11 +103,9 @@ void GeoJSONSource::load(FileSource& fileSource) { } geojsonvt = style::parseGeoJSON(d); - newTileset->zoomRange.max = geojsonvt->options.maxZoom; invalidateTiles(); - tileset = std::move(newTileset); loaded = true; observer->onSourceLoaded(*this); } diff --git a/src/mbgl/style/sources/geojson_source.hpp b/src/mbgl/style/sources/geojson_source.hpp index 83f5290873..7022d387e9 100644 --- a/src/mbgl/style/sources/geojson_source.hpp +++ b/src/mbgl/style/sources/geojson_source.hpp @@ -23,7 +23,6 @@ public: GeoJSONSource(std::string id, std::string url, - std::unique_ptr<Tileset>&&, std::unique_ptr<mapbox::geojsonvt::GeoJSONVT>&&); ~GeoJSONSource() final; diff --git a/src/mbgl/style/tile_source.cpp b/src/mbgl/style/tile_source.cpp index ef58d87eb5..12c62f07a5 100644 --- a/src/mbgl/style/tile_source.cpp +++ b/src/mbgl/style/tile_source.cpp @@ -1,6 +1,7 @@ #include <mbgl/style/tile_source.hpp> #include <mbgl/style/source_observer.hpp> #include <mbgl/style/parser.hpp> +#include <mbgl/util/tileset.hpp> #include <mbgl/storage/file_source.hpp> namespace mbgl { @@ -11,7 +12,8 @@ TileSource::TileSource(SourceType type_, std::string url_, uint16_t tileSize_, std::unique_ptr<Tileset>&& tileset_) - : Source(type_, std::move(id_), std::move(url_), tileSize_, std::move(tileset_)) { + : Source(type_, std::move(id_), std::move(url_), tileSize_), + tileset(std::move(tileset_)) { } TileSource::~TileSource() = default; diff --git a/src/mbgl/style/tile_source.hpp b/src/mbgl/style/tile_source.hpp index 7fa2f8157e..c0dc0da8c7 100644 --- a/src/mbgl/style/tile_source.hpp +++ b/src/mbgl/style/tile_source.hpp @@ -4,6 +4,7 @@ namespace mbgl { +class Tileset; class AsyncRequest; namespace style { @@ -23,9 +24,12 @@ public: void load(FileSource&) final; -private: + const Tileset* getTileset() const { return tileset.get(); } + +protected: Range<uint8_t> getZoomRange() final; + std::unique_ptr<const Tileset> tileset; std::unique_ptr<AsyncRequest> req; }; |