summaryrefslogtreecommitdiff
path: root/src/mbgl/layermanager/symbol_layer_factory.cpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-01-25 23:57:47 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-01-26 00:28:00 +0200
commit1bc6132060e41dd01940b424b2c5399e28bc8f5e (patch)
tree8c08101174586574bec06023c66bfcfad7ce517f /src/mbgl/layermanager/symbol_layer_factory.cpp
parent4b254dc99430ff6ce16bc767d7c9f1555ddf527e (diff)
downloadqtlocation-mapboxgl-upstream/mikhail_layer_manager_makes_buckets.tar.gz
[core] Layer manager is responsible for buckets and layouts creationupstream/mikhail_layer_manager_makes_buckets
This is a step to stop using of render layers in tile worker thread.
Diffstat (limited to 'src/mbgl/layermanager/symbol_layer_factory.cpp')
-rw-r--r--src/mbgl/layermanager/symbol_layer_factory.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mbgl/layermanager/symbol_layer_factory.cpp b/src/mbgl/layermanager/symbol_layer_factory.cpp
index 8acefb9f41..d992741551 100644
--- a/src/mbgl/layermanager/symbol_layer_factory.cpp
+++ b/src/mbgl/layermanager/symbol_layer_factory.cpp
@@ -1,5 +1,6 @@
#include <mbgl/layermanager/symbol_layer_factory.hpp>
+#include <mbgl/layout/symbol_layout.hpp>
#include <mbgl/renderer/layers/render_symbol_layer.hpp>
#include <mbgl/style/layers/symbol_layer.hpp>
#include <mbgl/style/layers/symbol_layer_impl.hpp>
@@ -23,6 +24,16 @@ std::unique_ptr<style::Layer> SymbolLayerFactory::createLayer(const std::string&
return layer;
}
+std::unique_ptr<Layout> SymbolLayerFactory::createLayout(const LayoutParameters& parameters,
+ std::unique_ptr<GeometryTileLayer> tileLayer,
+ const std::vector<const RenderLayer*>& group) noexcept {
+ return std::make_unique<SymbolLayout>(parameters.bucketParameters,
+ group,
+ std::move(tileLayer),
+ parameters.imageDependencies,
+ parameters.glyphDependencies);
+}
+
std::unique_ptr<RenderLayer> SymbolLayerFactory::createRenderLayer(Immutable<style::Layer::Impl> impl) noexcept {
assert(impl->getTypeInfo() == getTypeInfo());
return std::make_unique<RenderSymbolLayer>(staticImmutableCast<style::SymbolLayer::Impl>(std::move(impl)));