#pragma once #include #include #include #include #include #include #include #include #include #include #include #include namespace mbgl { class FileSource; class ResourceTransform; struct StillImageRequest { StillImageRequest(Map::StillImageCallback&& callback_) : callback(std::move(callback_)) { } Map::StillImageCallback callback; }; class Map::Impl final : public style::Observer, public RendererObserver { public: Impl(RendererFrontend&, MapObserver&, std::shared_ptr, const MapOptions&); ~Impl() final; // StyleObserver void onSourceChanged(style::Source&) final; void onUpdate() final; void onStyleLoading() final; void onStyleLoaded() final; void onStyleError(std::exception_ptr) final; // RendererObserver void onInvalidate() final; void onResourceError(std::exception_ptr) final; void onWillStartRenderingFrame() final; void onDidFinishRenderingFrame(RenderMode, bool, bool) final; void onWillStartRenderingMap() final; void onDidFinishRenderingMap() final; void onStyleImageMissing(const std::string&, const std::function&) final; void onRemoveUnusedStyleImages(const std::vector&) final; // Map void jumpTo(const CameraOptions&); MapObserver& observer; RendererFrontend& rendererFrontend; Transform transform; const MapMode mode; const float pixelRatio; const bool crossSourceCollisions; MapDebugOptions debugOptions { MapDebugOptions::NoDebug }; std::shared_ptr fileSource; std::unique_ptr style; AnnotationManager annotationManager; bool cameraMutated = false; uint8_t prefetchZoomDelta = util::DEFAULT_PREFETCH_ZOOM_DELTA; bool loading = false; bool rendererFullyLoaded; std::unique_ptr stillImageRequest; }; } // namespace mbgl