summaryrefslogtreecommitdiff
path: root/src/mbgl/tile/geometry_tile_worker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/tile/geometry_tile_worker.cpp')
-rw-r--r--src/mbgl/tile/geometry_tile_worker.cpp33
1 files changed, 4 insertions, 29 deletions
diff --git a/src/mbgl/tile/geometry_tile_worker.cpp b/src/mbgl/tile/geometry_tile_worker.cpp
index 854bfcf1a4..fd33b030ab 100644
--- a/src/mbgl/tile/geometry_tile_worker.cpp
+++ b/src/mbgl/tile/geometry_tile_worker.cpp
@@ -376,36 +376,11 @@ void GeometryTileWorker::parse() {
// are needed to render the layer. They use the intermediate Layout data structure to accomplish this,
// and either immediately create a bucket if no images/glyphs are used, or the Layout is stored until
// the images/glyphs are available to add the features to the buckets.
- if (leader.baseImpl->getTypeInfo()->layout == LayerTypeInfo::Layout::Required) {
- auto layout = leader.createLayout(parameters, group, std::move(geometryLayer), glyphDependencies, imageDependencies);
- if (layout->hasDependencies()) {
- layouts.push_back(std::move(layout));
- } else {
- layout->createBucket({}, featureIndex, buckets, firstLoad, showCollisionBoxes);
- }
+ auto layout = leader.createLayout(parameters, group, std::move(geometryLayer), glyphDependencies, imageDependencies);
+ if (layout->hasDependencies()) {
+ layouts.push_back(std::move(layout));
} else {
- const Filter& filter = leader.baseImpl->filter;
- const std::string& sourceLayerID = leader.baseImpl->sourceLayer;
- std::shared_ptr<Bucket> bucket = leader.createBucket(parameters, group);
-
- for (std::size_t i = 0; !obsolete && i < geometryLayer->featureCount(); i++) {
- std::unique_ptr<GeometryTileFeature> feature = geometryLayer->getFeature(i);
-
- if (!filter(expression::EvaluationContext { static_cast<float>(this->id.overscaledZ), feature.get() }))
- continue;
-
- GeometryCollection geometries = feature->getGeometries();
- bucket->addFeature(*feature, geometries, {}, PatternLayerMap ());
- featureIndex->insert(geometries, i, sourceLayerID, leader.getID());
- }
-
- if (!bucket->hasData()) {
- continue;
- }
-
- for (const auto& layer : group) {
- buckets.emplace(layer->getID(), bucket);
- }
+ layout->createBucket({}, featureIndex, buckets, firstLoad, showCollisionBoxes);
}
}