diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-06-06 18:54:47 -0700 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2016-06-10 12:42:14 +0200 |
commit | 94cfb1eb5aae9df9de128bfd57d2e934bb9b7e90 (patch) | |
tree | 0af59e84765166e5b6335743afb2ab9658da21c1 /src | |
parent | a1d1bb0c6dc63757abc3dbcab9ff1c4bacca7ba7 (diff) | |
download | qtlocation-mapboxgl-94cfb1eb5aae9df9de128bfd57d2e934bb9b7e90.tar.gz |
[core] Factor common code into FileBasedTileSource
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/tile/file_based_tile_source.hpp | 5 | ||||
-rw-r--r-- | src/mbgl/tile/file_based_tile_source_impl.hpp | 16 | ||||
-rw-r--r-- | src/mbgl/tile/raster_tile_data.cpp | 9 | ||||
-rw-r--r-- | src/mbgl/tile/vector_tile_data.cpp | 12 |
4 files changed, 22 insertions, 20 deletions
diff --git a/src/mbgl/tile/file_based_tile_source.hpp b/src/mbgl/tile/file_based_tile_source.hpp index 77028e780e..fdada6d6ae 100644 --- a/src/mbgl/tile/file_based_tile_source.hpp +++ b/src/mbgl/tile/file_based_tile_source.hpp @@ -12,7 +12,10 @@ class Response; template <typename T> class FileBasedTileSource : public TileSource { public: - FileBasedTileSource(T&, const Resource&, FileSource&); + FileBasedTileSource(T&, + const OverscaledTileID&, + const style::UpdateParameters&, + const Tileset&); virtual ~FileBasedTileSource() = default; protected: diff --git a/src/mbgl/tile/file_based_tile_source_impl.hpp b/src/mbgl/tile/file_based_tile_source_impl.hpp index 2d10b64584..e81e752862 100644 --- a/src/mbgl/tile/file_based_tile_source_impl.hpp +++ b/src/mbgl/tile/file_based_tile_source_impl.hpp @@ -2,6 +2,8 @@ #include <mbgl/tile/file_based_tile_source.hpp> #include <mbgl/storage/file_source.hpp> +#include <mbgl/style/update_parameters.hpp> +#include <mbgl/util/tileset.hpp> #include <cassert> @@ -9,9 +11,17 @@ namespace mbgl { template <typename T> FileBasedTileSource<T>::FileBasedTileSource(T& tileData_, - const Resource& resource_, - FileSource& fileSource_) - : tileData(tileData_), resource(resource_), fileSource(fileSource_) { + const OverscaledTileID& id, + const style::UpdateParameters& parameters, + const Tileset& tileset) + : tileData(tileData_), + resource(Resource::tile( + tileset.tiles.at(0), + parameters.pixelRatio, + id.canonical.x, + id.canonical.y, + id.canonical.z)), + fileSource(parameters.fileSource) { assert(!request); if (fileSource.supportsOptionalRequests()) { // When supported, the first request is always optional, even if the TileSource diff --git a/src/mbgl/tile/raster_tile_data.cpp b/src/mbgl/tile/raster_tile_data.cpp index f28da3d3d2..3c64630951 100644 --- a/src/mbgl/tile/raster_tile_data.cpp +++ b/src/mbgl/tile/raster_tile_data.cpp @@ -18,13 +18,8 @@ RasterTileData::RasterTileData(const OverscaledTileID& id_, const Tileset& tileset) : TileData(id_), texturePool(parameters.texturePool), - worker(parameters.worker) { - assert(!tileset.tiles.empty()); - const auto resource = Resource::tile( - tileset.tiles.at(0), parameters.pixelRatio, id_.canonical.x, - id_.canonical.y, id_.canonical.z); - tileSource = std::make_unique<FileBasedTileSource<RasterTileData>>( - *this, resource, parameters.fileSource); + worker(parameters.worker), + tileSource(std::make_unique<FileBasedTileSource<RasterTileData>>(*this, id_, parameters, tileset)) { } void RasterTileData::setError(std::exception_ptr err) { diff --git a/src/mbgl/tile/vector_tile_data.cpp b/src/mbgl/tile/vector_tile_data.cpp index dc5c536e6f..e07d210f43 100644 --- a/src/mbgl/tile/vector_tile_data.cpp +++ b/src/mbgl/tile/vector_tile_data.cpp @@ -4,22 +4,16 @@ #include <mbgl/tile/tile_source.hpp> #include <mbgl/tile/vector_tile.hpp> #include <mbgl/style/update_parameters.hpp> -#include <mbgl/util/tileset.hpp> #include <mbgl/util/async_request.hpp> namespace mbgl { -VectorTileData::VectorTileData(const OverscaledTileID& overscaledTileID, +VectorTileData::VectorTileData(const OverscaledTileID& id_, std::string sourceID, const style::UpdateParameters& parameters, const Tileset& tileset) - : GeometryTileData(overscaledTileID, sourceID, parameters.style, parameters.mode) { - assert(!tileset.tiles.empty()); - const auto resource = Resource::tile( - tileset.tiles.at(0), parameters.pixelRatio, overscaledTileID.canonical.x, - overscaledTileID.canonical.y, overscaledTileID.canonical.z); - tileSource = std::make_unique<FileBasedTileSource<VectorTileData>>( - *this, resource, parameters.fileSource); + : GeometryTileData(id_, sourceID, parameters.style, parameters.mode), + tileSource(std::make_unique<FileBasedTileSource<VectorTileData>>(*this, id_, parameters, tileset)) { } VectorTileData::~VectorTileData() = default; |