Files
MapLibreParticleLab/include/mln/mtl/tile_layer_group.hpp
Bart Louwers 2a8ebc4906 core: rename mbgl directories to mln (#4511)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-08-22 20:50:14 +02:00

45 lines
1.1 KiB
C++

#pragma once
#include <mln/mtl/mtl_fwd.hpp>
#include <mln/mtl/uniform_buffer.hpp>
#include <mln/renderer/layer_group.hpp>
#include <Foundation/NSSharedPtr.hpp>
#include <optional>
namespace mln {
class PaintParameters;
namespace mtl {
class RenderPass;
/**
A layer group for tile-based drawables
*/
class TileLayerGroup : public mln::TileLayerGroup {
public:
TileLayerGroup(int32_t layerIndex, std::size_t initialCapacity, std::string name);
~TileLayerGroup() override {}
void upload(gfx::UploadPass&) override;
void render(RenderOrchestrator&, PaintParameters&) override;
const gfx::UniformBufferArray& getUniformBuffers() const override { return uniformBuffers; };
gfx::UniformBufferArray& mutableUniformBuffers() override { return uniformBuffers; };
void bindUniformBuffers(RenderPass&) const noexcept;
void unbindUniformBuffers(RenderPass&) const noexcept {}
protected:
std::optional<MTLDepthStencilStatePtr> stateNone;
std::optional<MTLDepthStencilStatePtr> stateDepth;
UniformBufferArray uniformBuffers;
};
} // namespace mtl
} // namespace mln