#pragma once #include #include #include #include namespace mbgl { class MapObserver { public: virtual ~MapObserver() = default; static MapObserver& nullObserver() { static MapObserver mapObserver; return mapObserver; } enum class CameraChangeMode : uint32_t { Immediate, Animated }; enum class RenderMode : uint32_t { Partial, Full }; virtual void onCameraWillChange(CameraChangeMode) {} virtual void onCameraIsChanging() {} virtual void onCameraDidChange(CameraChangeMode) {} virtual void onWillStartLoadingMap() {} virtual void onDidFinishLoadingMap() {} virtual void onDidFailLoadingMap(std::exception_ptr) {} virtual void onWillStartRenderingFrame() {} virtual void onDidFinishRenderingFrame(RenderMode) {} virtual void onWillStartRenderingMap() {} virtual void onDidFinishRenderingMap(RenderMode) {} virtual void onDidFinishLoadingStyle() {} virtual void onSourceChanged(style::Source&) {} }; } // namespace mbgl