summaryrefslogtreecommitdiff
path: root/src/mbgl/style/layers/custom_layer_impl.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/style/layers/custom_layer_impl.hpp')
-rw-r--r--src/mbgl/style/layers/custom_layer_impl.hpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/mbgl/style/layers/custom_layer_impl.hpp b/src/mbgl/style/layers/custom_layer_impl.hpp
new file mode 100644
index 0000000000..00e576b6a3
--- /dev/null
+++ b/src/mbgl/style/layers/custom_layer_impl.hpp
@@ -0,0 +1,44 @@
+#pragma once
+
+#include <mbgl/style/layer_impl.hpp>
+#include <mbgl/style/layers/custom_layer.hpp>
+
+namespace mbgl {
+
+class TransformState;
+
+namespace style {
+
+class CustomLayer::Impl : public Layer::Impl {
+public:
+ Impl(const std::string& id,
+ CustomLayerInitializeFunction,
+ CustomLayerRenderFunction,
+ CustomLayerDeinitializeFunction,
+ void* context);
+
+ Impl(const Impl&);
+ ~Impl() final;
+
+ void initialize();
+ void render(const TransformState&) const;
+
+private:
+ std::unique_ptr<Layer> clone() const override;
+
+ void parseLayout(const JSValue&) final {}
+ void parsePaints(const JSValue&) final {}
+
+ void cascade(const CascadeParameters&) final {}
+ bool recalculate(const CalculationParameters&) final;
+
+ std::unique_ptr<Bucket> createBucket(BucketParameters&) const final;
+
+ CustomLayerInitializeFunction initializeFn = nullptr;
+ CustomLayerRenderFunction renderFn = nullptr;
+ CustomLayerDeinitializeFunction deinitializeFn = nullptr;
+ void* context = nullptr;
+};
+
+} // namespace style
+} // namespace mbgl