summaryrefslogtreecommitdiff
path: root/src/mbgl/tile/geometry_tile_worker.cpp
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-10-20 16:31:50 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-12-21 08:45:08 -0800
commitf6985cf6ffe0557d4b8a9360ef351d1668c8974c (patch)
treede923320280f8c1f2957db94820ce298630b412a /src/mbgl/tile/geometry_tile_worker.cpp
parent77db372123920ca6c3233c0b2c7393703db66635 (diff)
downloadqtlocation-mapboxgl-f6985cf6ffe0557d4b8a9360ef351d1668c8974c.tar.gz
[core] Convert BucketParameters#layer to a separate parameter
This parameter varies between Buckets, while the others are constant. It makes more sense as an individual parameter.
Diffstat (limited to 'src/mbgl/tile/geometry_tile_worker.cpp')
-rw-r--r--src/mbgl/tile/geometry_tile_worker.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/mbgl/tile/geometry_tile_worker.cpp b/src/mbgl/tile/geometry_tile_worker.cpp
index 738c78572d..e6aaf05d1a 100644
--- a/src/mbgl/tile/geometry_tile_worker.cpp
+++ b/src/mbgl/tile/geometry_tile_worker.cpp
@@ -210,6 +210,13 @@ void GeometryTileWorker::redoLayout() {
std::unordered_map<std::string, std::unique_ptr<Bucket>> buckets;
auto featureIndex = std::make_unique<FeatureIndex>();
+ BucketParameters parameters(id,
+ obsolete,
+ reinterpret_cast<uintptr_t>(this),
+ glyphAtlas,
+ *featureIndex,
+ mode);
+
for (auto i = layers->rbegin(); i != layers->rend(); i++) {
if (obsolete) {
return;
@@ -235,18 +242,10 @@ void GeometryTileWorker::redoLayout() {
continue;
}
- BucketParameters parameters(id,
- *geometryLayer,
- obsolete,
- reinterpret_cast<uintptr_t>(this),
- glyphAtlas,
- *featureIndex,
- mode);
-
if (layer->is<SymbolLayer>()) {
- symbolLayouts.push_back(layer->as<SymbolLayer>()->impl->createLayout(parameters));
+ symbolLayouts.push_back(layer->as<SymbolLayer>()->impl->createLayout(parameters, *geometryLayer));
} else {
- std::unique_ptr<Bucket> bucket = layer->baseImpl->createBucket(parameters);
+ std::unique_ptr<Bucket> bucket = layer->baseImpl->createBucket(parameters, *geometryLayer);
if (bucket->hasData()) {
buckets.emplace(layer->baseImpl->bucketName(), std::move(bucket));
}