summaryrefslogtreecommitdiff
path: root/src/mbgl/layermanager/layer_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/layermanager/layer_manager.cpp')
-rw-r--r--src/mbgl/layermanager/layer_manager.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/mbgl/layermanager/layer_manager.cpp b/src/mbgl/layermanager/layer_manager.cpp
index 8f42bc9218..e6195caeba 100644
--- a/src/mbgl/layermanager/layer_manager.cpp
+++ b/src/mbgl/layermanager/layer_manager.cpp
@@ -1,6 +1,9 @@
#include <mbgl/layermanager/layer_manager.hpp>
+#include <mbgl/layout/layout.hpp>
#include <mbgl/layermanager/layer_factory.hpp>
+#include <mbgl/renderer/bucket.hpp>
+#include <mbgl/renderer/bucket_parameters.hpp>
#include <mbgl/renderer/render_layer.hpp>
#include <mbgl/style/layer.hpp>
#include <mbgl/style/layer_impl.hpp>
@@ -22,6 +25,24 @@ std::unique_ptr<style::Layer> LayerManager::createLayer(
return nullptr;
}
+std::unique_ptr<Bucket> LayerManager::createBucket(const BucketParameters& parameters, const std::vector<const RenderLayer*>& layers) noexcept {
+ assert(!layers.empty());
+ assert(parameters.layerType->layout == style::LayerTypeInfo::Layout::NotRequired);
+ LayerFactory* factory = getFactory(parameters.layerType);
+ assert(factory);
+ return factory->createBucket(parameters, layers);
+}
+
+std::unique_ptr<Layout> LayerManager::createLayout(const LayoutParameters& parameters,
+ std::unique_ptr<GeometryTileLayer> tileLayer,
+ const std::vector<const RenderLayer*>& layers) noexcept {
+ assert(!layers.empty());
+ assert(parameters.bucketParameters.layerType->layout == style::LayerTypeInfo::Layout::Required);
+ LayerFactory* factory = getFactory(parameters.bucketParameters.layerType);
+ assert(factory);
+ return factory->createLayout(parameters, std::move(tileLayer), layers);
+}
+
std::unique_ptr<RenderLayer> LayerManager::createRenderLayer(Immutable<style::Layer::Impl> impl) noexcept {
LayerFactory* factory = getFactory(impl->getTypeInfo());
assert(factory);