summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-06-06 18:54:47 -0700
committerKonstantin Käfer <mail@kkaefer.com>2016-06-10 12:42:14 +0200
commit94cfb1eb5aae9df9de128bfd57d2e934bb9b7e90 (patch)
tree0af59e84765166e5b6335743afb2ab9658da21c1 /src
parenta1d1bb0c6dc63757abc3dbcab9ff1c4bacca7ba7 (diff)
downloadqtlocation-mapboxgl-94cfb1eb5aae9df9de128bfd57d2e934bb9b7e90.tar.gz
[core] Factor common code into FileBasedTileSource
Diffstat (limited to 'src')
-rw-r--r--src/mbgl/tile/file_based_tile_source.hpp5
-rw-r--r--src/mbgl/tile/file_based_tile_source_impl.hpp16
-rw-r--r--src/mbgl/tile/raster_tile_data.cpp9
-rw-r--r--src/mbgl/tile/vector_tile_data.cpp12
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;