diff options
Diffstat (limited to 'src/mbgl/tile/geometry_tile_worker.cpp')
-rw-r--r-- | src/mbgl/tile/geometry_tile_worker.cpp | 19 |
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)); } |