summaryrefslogtreecommitdiff
path: root/src/mbgl
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2018-11-30 12:10:33 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2018-11-30 19:09:17 +0200
commit92352de87d4068985fa56100f2c6e16bf26a1c86 (patch)
treee3dd5729e2ef8e32931b8e42ab34a3d0b806ee18 /src/mbgl
parent8bc362e3a2836cfa96ef14a41a0e882a1d08e881 (diff)
downloadqtlocation-mapboxgl-92352de87d4068985fa56100f2c6e16bf26a1c86.tar.gz
[core] layermanager folder
Move `LayerManager` and `LayerFactory` abstract classes to a dedicated folder.
Diffstat (limited to 'src/mbgl')
-rw-r--r--src/mbgl/annotation/annotation_manager.cpp1
-rw-r--r--src/mbgl/layermanager/layer_factory.cpp47
-rw-r--r--src/mbgl/layermanager/layer_manager.cpp31
-rw-r--r--src/mbgl/map/map.cpp1
-rw-r--r--src/mbgl/renderer/renderer.cpp2
-rw-r--r--src/mbgl/renderer/renderer_impl.cpp1
-rw-r--r--src/mbgl/style/conversion/layer.cpp2
-rw-r--r--src/mbgl/style/layer.cpp59
-rw-r--r--src/mbgl/tile/geometry_tile_worker.cpp1
9 files changed, 86 insertions, 59 deletions
diff --git a/src/mbgl/annotation/annotation_manager.cpp b/src/mbgl/annotation/annotation_manager.cpp
index 17cf77865c..ab22404c15 100644
--- a/src/mbgl/annotation/annotation_manager.cpp
+++ b/src/mbgl/annotation/annotation_manager.cpp
@@ -4,6 +4,7 @@
#include <mbgl/annotation/symbol_annotation_impl.hpp>
#include <mbgl/annotation/line_annotation_impl.hpp>
#include <mbgl/annotation/fill_annotation_impl.hpp>
+#include <mbgl/layermanager/layer_manager.hpp>
#include <mbgl/style/style.hpp>
#include <mbgl/style/style_impl.hpp>
#include <mbgl/style/layers/symbol_layer.hpp>
diff --git a/src/mbgl/layermanager/layer_factory.cpp b/src/mbgl/layermanager/layer_factory.cpp
new file mode 100644
index 0000000000..c7f63b8699
--- /dev/null
+++ b/src/mbgl/layermanager/layer_factory.cpp
@@ -0,0 +1,47 @@
+#include <mbgl/layermanager/layer_factory.hpp>
+
+#include <mbgl/style/conversion/constant.hpp>
+#include <mbgl/style/conversion/filter.hpp>
+#include <mbgl/style/conversion_impl.hpp>
+#include <mbgl/style/layer.hpp>
+
+namespace mbgl {
+
+optional<std::string> LayerFactory::getSource(const style::conversion::Convertible& value) const noexcept {
+ auto sourceValue = objectMember(value, "source");
+ if (!sourceValue) {
+ return nullopt;
+ }
+
+ optional<std::string> source = toString(*sourceValue);
+ if (!source) {
+ return nullopt;
+ }
+
+ return source;
+}
+
+bool LayerFactory::initSourceLayerAndFilter(style::Layer* layer, const style::conversion::Convertible& value) const noexcept {
+ auto sourceLayerValue = objectMember(value, "source-layer");
+ if (sourceLayerValue) {
+ optional<std::string> sourceLayer = toString(*sourceLayerValue);
+ if (!sourceLayer) {
+ return false;
+ }
+ layer->setSourceLayer(*sourceLayer);
+ }
+
+ auto filterValue = objectMember(value, "filter");
+ if (filterValue) {
+ style::conversion::Error error;
+ optional<style::Filter> filter = style::conversion::convert<style::Filter>(*filterValue, error);
+ if (!filter) {
+ return false;
+ }
+ layer->setFilter(*filter);
+ }
+
+ return true;
+}
+
+} // namespace mbgl
diff --git a/src/mbgl/layermanager/layer_manager.cpp b/src/mbgl/layermanager/layer_manager.cpp
new file mode 100644
index 0000000000..8f42bc9218
--- /dev/null
+++ b/src/mbgl/layermanager/layer_manager.cpp
@@ -0,0 +1,31 @@
+#include <mbgl/layermanager/layer_manager.hpp>
+
+#include <mbgl/layermanager/layer_factory.hpp>
+#include <mbgl/renderer/render_layer.hpp>
+#include <mbgl/style/layer.hpp>
+#include <mbgl/style/layer_impl.hpp>
+#include <mbgl/style/conversion_impl.hpp>
+
+namespace mbgl {
+
+std::unique_ptr<style::Layer> LayerManager::createLayer(
+ const std::string& type, const std::string& id,
+ const style::conversion::Convertible& value, style::conversion::Error& error) noexcept {
+ if (LayerFactory* factory = getFactory(type)) {
+ auto layer = factory->createLayer(id, value);
+ if (!layer) {
+ error.message = "Error parsing a layer of type: " + type;
+ }
+ return layer;
+ }
+ error.message = "Unsupported layer type: " + type;
+ return nullptr;
+}
+
+std::unique_ptr<RenderLayer> LayerManager::createRenderLayer(Immutable<style::Layer::Impl> impl) noexcept {
+ LayerFactory* factory = getFactory(impl->getTypeInfo());
+ assert(factory);
+ return factory->createRenderLayer(std::move(impl));
+}
+
+} // namespace mbgl
diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp
index b8d5186729..c3bebae837 100644
--- a/src/mbgl/map/map.cpp
+++ b/src/mbgl/map/map.cpp
@@ -3,6 +3,7 @@
#include <mbgl/map/transform.hpp>
#include <mbgl/map/transform_state.hpp>
#include <mbgl/annotation/annotation_manager.hpp>
+#include <mbgl/layermanager/layer_manager.hpp>
#include <mbgl/style/style_impl.hpp>
#include <mbgl/style/observer.hpp>
#include <mbgl/renderer/update_parameters.hpp>
diff --git a/src/mbgl/renderer/renderer.cpp b/src/mbgl/renderer/renderer.cpp
index 9976c1b6dc..6b73e568fc 100644
--- a/src/mbgl/renderer/renderer.cpp
+++ b/src/mbgl/renderer/renderer.cpp
@@ -1,4 +1,6 @@
#include <mbgl/renderer/renderer.hpp>
+
+#include <mbgl/layermanager/layer_manager.hpp>
#include <mbgl/renderer/renderer_impl.hpp>
#include <mbgl/renderer/backend_scope.hpp>
#include <mbgl/annotation/annotation_manager.hpp>
diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp
index 7d1653cdbd..c844d1f87c 100644
--- a/src/mbgl/renderer/renderer_impl.cpp
+++ b/src/mbgl/renderer/renderer_impl.cpp
@@ -1,4 +1,5 @@
#include <mbgl/annotation/annotation_manager.hpp>
+#include <mbgl/layermanager/layer_manager.hpp>
#include <mbgl/renderer/renderer_impl.hpp>
#include <mbgl/renderer/renderer_backend.hpp>
#include <mbgl/renderer/renderer_observer.hpp>
diff --git a/src/mbgl/style/conversion/layer.cpp b/src/mbgl/style/conversion/layer.cpp
index b551f1bfb2..e8f94a1064 100644
--- a/src/mbgl/style/conversion/layer.cpp
+++ b/src/mbgl/style/conversion/layer.cpp
@@ -3,6 +3,8 @@
#include <mbgl/style/conversion/filter.hpp>
#include <mbgl/style/conversion_impl.hpp>
+#include <mbgl/layermanager/layer_manager.hpp>
+
namespace mbgl {
namespace style {
namespace conversion {
diff --git a/src/mbgl/style/layer.cpp b/src/mbgl/style/layer.cpp
index abe6444701..328cd47555 100644
--- a/src/mbgl/style/layer.cpp
+++ b/src/mbgl/style/layer.cpp
@@ -110,63 +110,4 @@ const LayerTypeInfo* Layer::getTypeInfo() const noexcept {
}
} // namespace style
-
-optional<std::string> LayerFactory::getSource(const style::conversion::Convertible& value) const noexcept {
- auto sourceValue = objectMember(value, "source");
- if (!sourceValue) {
- return nullopt;
- }
-
- optional<std::string> source = toString(*sourceValue);
- if (!source) {
- return nullopt;
- }
-
- return source;
-}
-
-bool LayerFactory::initSourceLayerAndFilter(style::Layer* layer, const style::conversion::Convertible& value) const noexcept {
- auto sourceLayerValue = objectMember(value, "source-layer");
- if (sourceLayerValue) {
- optional<std::string> sourceLayer = toString(*sourceLayerValue);
- if (!sourceLayer) {
- return false;
- }
- layer->setSourceLayer(*sourceLayer);
- }
-
- auto filterValue = objectMember(value, "filter");
- if (filterValue) {
- style::conversion::Error error;
- optional<style::Filter> filter = style::conversion::convert<style::Filter>(*filterValue, error);
- if (!filter) {
- return false;
- }
- layer->setFilter(*filter);
- }
-
- return true;
-}
-
-std::unique_ptr<style::Layer> LayerManager::createLayer(
- const std::string& type, const std::string& id,
- const style::conversion::Convertible& value, style::conversion::Error& error) noexcept {
- if (LayerFactory* factory = getFactory(type)) {
- auto layer = factory->createLayer(id, value);
- if (!layer) {
- error.message = "Error parsing a layer of type: " + type;
- }
- return layer;
- }
- error.message = "Unsupported layer type: " + type;
- return nullptr;
-}
-
-std::unique_ptr<RenderLayer> LayerManager::createRenderLayer(Immutable<style::Layer::Impl> impl) noexcept {
- LayerFactory* factory = getFactory(impl->getTypeInfo());
- assert(factory);
- return factory->createRenderLayer(std::move(impl));
-}
-
-
} // namespace mbgl
diff --git a/src/mbgl/tile/geometry_tile_worker.cpp b/src/mbgl/tile/geometry_tile_worker.cpp
index 9e4c045ce5..854bfcf1a4 100644
--- a/src/mbgl/tile/geometry_tile_worker.cpp
+++ b/src/mbgl/tile/geometry_tile_worker.cpp
@@ -1,6 +1,7 @@
#include <mbgl/tile/geometry_tile_worker.hpp>
#include <mbgl/tile/geometry_tile_data.hpp>
#include <mbgl/tile/geometry_tile.hpp>
+#include <mbgl/layermanager/layer_manager.hpp>
#include <mbgl/layout/symbol_layout.hpp>
#include <mbgl/layout/pattern_layout.hpp>
#include <mbgl/renderer/bucket_parameters.hpp>