#pragma once #include "qmapboxgl.hpp" #include #include #include #include #include #include #include #include class QMapboxGLPrivate : public QObject, public mbgl::View, public mbgl::Backend { Q_OBJECT public: explicit QMapboxGLPrivate(QMapboxGL *, const QMapboxGLSettings &, const QSize &size, qreal pixelRatio); virtual ~QMapboxGLPrivate(); // mbgl::View implementation. float getPixelRatio() const; void bind() final; std::array getSize() const; std::array getFramebufferSize() const; void activate() final {} void deactivate() final {} void invalidate() final; // mbgl::Backend (mbgl::MapObserver) implementation. void onCameraWillChange(mbgl::MapObserver::CameraChangeMode) final; void onCameraIsChanging() final; void onCameraDidChange(mbgl::MapObserver::CameraChangeMode) final; void onWillStartLoadingMap() final; void onDidFinishLoadingMap() final; void onDidFailLoadingMap(std::exception_ptr) final; void onWillStartRenderingFrame() final; void onDidFinishRenderingFrame(mbgl::MapObserver::RenderMode) final; void onWillStartRenderingMap() final; void onDidFinishRenderingMap(mbgl::MapObserver::RenderMode) final; void onDidFinishLoadingStyle() final; void onSourceDidChange() final; mbgl::EdgeInsets margins; QSize size { 0, 0 }; QSize fbSize { 0, 0 }; QMapboxGL *q_ptr { nullptr }; std::unique_ptr fileSourceObj; std::shared_ptr threadPool; std::unique_ptr mapObj; bool dirty { false }; public slots: void connectionEstablished(); signals: void needsRendering(); void mapChanged(QMapboxGL::MapChange); void copyrightsChanged(const QString ©rightsHtml); };