summaryrefslogtreecommitdiff
path: root/src/mbgl/style/source.cpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2016-05-19 17:19:45 +0200
committerKonstantin Käfer <mail@kkaefer.com>2016-06-10 12:42:14 +0200
commit6b729ccb4680e41fd6346aeb5a5e55027ca49052 (patch)
treed01d9e439e3991e4ae0fb14069bc708ac59bdb13 /src/mbgl/style/source.cpp
parent46b0ebcd3cad1a33a2a70c6e93b885d3be6be9fa (diff)
downloadqtlocation-mapboxgl-6b729ccb4680e41fd6346aeb5a5e55027ca49052.tar.gz
[core] store Resource instead of dependents to build URL
Diffstat (limited to 'src/mbgl/style/source.cpp')
-rw-r--r--src/mbgl/style/source.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/mbgl/style/source.cpp b/src/mbgl/style/source.cpp
index 5fec392ef8..1b5ae05f50 100644
--- a/src/mbgl/style/source.cpp
+++ b/src/mbgl/style/source.cpp
@@ -203,16 +203,23 @@ std::unique_ptr<TileData> Source::createTile(const OverscaledTileID& overscaledT
// If we don't find working tile data, we're just going to load it.
if (type == SourceType::Raster) {
- std::unique_ptr<RasterTileSource> monitor;
- monitor = std::make_unique<RasterTileSource>(overscaledTileID, parameters.pixelRatio, tileset->tiles.at(0), parameters.fileSource);
-
- data = std::make_unique<RasterTileData>(overscaledTileID, std::move(monitor),
- parameters.texturePool, parameters.worker, callback);
+ assert(!tileset->tiles.empty());
+ const auto resource = Resource::tile(
+ tileset->tiles.at(0), parameters.pixelRatio, overscaledTileID.canonical.x,
+ overscaledTileID.canonical.y, overscaledTileID.canonical.z);
+ auto monitor = std::make_unique<RasterTileSource>(resource, parameters.fileSource);
+ data =
+ std::make_unique<RasterTileData>(overscaledTileID, std::move(monitor),
+ parameters.texturePool, parameters.worker, callback);
} else {
std::unique_ptr<GeometryTileSource> monitor;
if (type == SourceType::Vector) {
- monitor = std::make_unique<VectorTileSource>(overscaledTileID, parameters.pixelRatio, tileset->tiles.at(0), parameters.fileSource);
+ assert(!tileset->tiles.empty());
+ const auto resource = Resource::tile(
+ tileset->tiles.at(0), parameters.pixelRatio, overscaledTileID.canonical.x,
+ overscaledTileID.canonical.y, overscaledTileID.canonical.z);
+ monitor = std::make_unique<VectorTileSource>(resource, parameters.fileSource);
} else if (type == SourceType::Annotations) {
monitor = std::make_unique<AnnotationTileSource>(overscaledTileID, parameters.annotationManager);
} else if (type == SourceType::GeoJSON) {