Remove GlContext from MapContext, layers receive MapContext from Initialize/Render

This commit is contained in:
Dan Paulat 2025-05-08 23:15:46 -05:00
parent 2d4ad2737e
commit 44a864f50f
25 changed files with 446 additions and 398 deletions

View file

@ -3,21 +3,29 @@
namespace scwx::qt::map
{
class LayerWrapperImpl
class LayerWrapper::Impl
{
public:
explicit LayerWrapperImpl(std::shared_ptr<GenericLayer> layer) :
layer_ {std::move(layer)}
explicit Impl(std::shared_ptr<GenericLayer> layer,
std::shared_ptr<MapContext> mapContext) :
layer_ {std::move(layer)}, mapContext_ {std::move(mapContext)}
{
}
~LayerWrapperImpl() {}
~Impl() = default;
Impl(const Impl&) = delete;
Impl& operator=(const Impl&) = delete;
Impl(const Impl&&) = delete;
Impl& operator=(const Impl&&) = delete;
std::shared_ptr<GenericLayer> layer_;
std::shared_ptr<MapContext> mapContext_;
};
LayerWrapper::LayerWrapper(const std::shared_ptr<GenericLayer>& layer) :
p(std::make_unique<LayerWrapperImpl>(layer))
LayerWrapper::LayerWrapper(std::shared_ptr<GenericLayer> layer,
std::shared_ptr<MapContext> mapContext) :
p(std::make_unique<Impl>(std::move(layer), std::move(mapContext)))
{
}
LayerWrapper::~LayerWrapper() = default;
@ -30,7 +38,7 @@ void LayerWrapper::initialize()
auto& layer = p->layer_;
if (layer != nullptr)
{
layer->Initialize();
layer->Initialize(p->mapContext_);
}
}
@ -39,7 +47,7 @@ void LayerWrapper::render(const QMapLibre::CustomLayerRenderParameters& params)
auto& layer = p->layer_;
if (layer != nullptr)
{
layer->Render(params);
layer->Render(p->mapContext_, params);
}
}