From 94cfb1eb5aae9df9de128bfd57d2e934bb9b7e90 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Mon, 6 Jun 2016 18:54:47 -0700 Subject: [PATCH] [core] Factor common code into FileBasedTileSource --- src/mbgl/tile/file_based_tile_source.hpp | 5 ++++- src/mbgl/tile/file_based_tile_source_impl.hpp | 16 +++++++++++++--- src/mbgl/tile/raster_tile_data.cpp | 9 ++------- 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 77028e780..fdada6d6a 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 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 2d10b6458..e81e75286 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 #include +#include +#include #include @@ -9,9 +11,17 @@ namespace mbgl { template FileBasedTileSource::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 f28da3d3d..3c6463095 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>( - *this, resource, parameters.fileSource); + worker(parameters.worker), + tileSource(std::make_unique>(*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 dc5c536e6..e07d210f4 100644 --- a/src/mbgl/tile/vector_tile_data.cpp +++ b/src/mbgl/tile/vector_tile_data.cpp @@ -4,22 +4,16 @@ #include #include #include -#include #include 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>( - *this, resource, parameters.fileSource); + : GeometryTileData(id_, sourceID, parameters.style, parameters.mode), + tileSource(std::make_unique>(*this, id_, parameters, tileset)) { } VectorTileData::~VectorTileData() = default;