summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-06-06 16:15:52 -0700
committerKonstantin Käfer <mail@kkaefer.com>2016-06-10 12:42:14 +0200
commit7235ba0bfba31294b4af3bf3b5475d79d96f5f36 (patch)
tree84e94b0da9bf73b7f1744aaffc3e80376af5fef8 /src
parentebd19db42a008fd09e3723b106943dbc750a2135 (diff)
downloadqtlocation-mapboxgl-7235ba0bfba31294b4af3bf3b5475d79d96f5f36.tar.gz
[core] Repeat some code so that all branches are parallel
Diffstat (limited to 'src')
-rw-r--r--src/mbgl/style/source.cpp50
1 files changed, 31 insertions, 19 deletions
diff --git a/src/mbgl/style/source.cpp b/src/mbgl/style/source.cpp
index f7af4210e7..8f33a62d07 100644
--- a/src/mbgl/style/source.cpp
+++ b/src/mbgl/style/source.cpp
@@ -209,32 +209,44 @@ std::unique_ptr<TileData> Source::createTile(const OverscaledTileID& overscaledT
// Need a std::move here to create a std::unique_ptr<TileData> from
// std::unique_ptr<GeometryTileData>.
return std::move(data);
- } else {
+ } else if (type == SourceType::Vector) {
+ 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 data = std::make_unique<GeometryTileData>(overscaledTileID, id, parameters.style,
parameters.mode);
data->setObserver(this);
- if (type == SourceType::Vector) {
- assert(!tileset->tiles.empty());
- const auto resource = Resource::tile(
- tileset->tiles.at(0), parameters.pixelRatio, overscaledTileID.canonical.x,
- overscaledTileID.canonical.y, overscaledTileID.canonical.z);
- data->setTileSource(
- std::make_unique<VectorTileSource>(*data, resource, parameters.fileSource));
- } else if (type == SourceType::Annotations) {
- data->setTileSource(std::make_unique<AnnotationTileSource>(
- *data, overscaledTileID, parameters.annotationManager));
- } else if (type == SourceType::GeoJSON) {
- data->setTileSource(
- std::make_unique<GeoJSONTileSource>(*data, geojsonvt.get(), overscaledTileID));
- } else {
- Log::Warning(Event::Style, "Source type '%s' is not implemented",
- SourceTypeClass(type).c_str());
- return nullptr;
- }
+ data->setTileSource(
+ std::make_unique<VectorTileSource>(*data, resource, parameters.fileSource));
+
+ // Need a std::move here to create a std::unique_ptr<TileData> from
+ // std::unique_ptr<GeometryTileData>.
+ return std::move(data);
+ } else if (type == SourceType::Annotations) {
+ auto data = std::make_unique<GeometryTileData>(overscaledTileID, id, parameters.style,
+ parameters.mode);
+ data->setObserver(this);
+ data->setTileSource(std::make_unique<AnnotationTileSource>(
+ *data, overscaledTileID, parameters.annotationManager));
// Need a std::move here to create a std::unique_ptr<TileData> from
// std::unique_ptr<GeometryTileData>.
return std::move(data);
+ } else if (type == SourceType::GeoJSON) {
+ auto data = std::make_unique<GeometryTileData>(overscaledTileID, id, parameters.style,
+ parameters.mode);
+ data->setObserver(this);
+ data->setTileSource(
+ std::make_unique<GeoJSONTileSource>(*data, geojsonvt.get(), overscaledTileID));
+
+ // Need a std::move here to create a std::unique_ptr<TileData> from
+ // std::unique_ptr<GeometryTileData>.
+ return std::move(data);
+ } else {
+ Log::Warning(Event::Style, "Source type '%s' is not implemented",
+ SourceTypeClass(type).c_str());
+ return nullptr;
}
}