diff options
Diffstat (limited to 'src/mbgl/style/layers/custom_layer_impl.hpp')
-rw-r--r-- | src/mbgl/style/layers/custom_layer_impl.hpp | 44 |
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 |