From fc70cbf1e12e27737c7a256682524cd617d18f71 Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Mon, 13 Mar 2017 16:16:38 +0200 Subject: [core] Replace MapChange enum with MapObserver --- include/mbgl/map/backend.hpp | 7 ++----- include/mbgl/map/map.hpp | 1 + include/mbgl/map/map_observer.hpp | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 include/mbgl/map/map_observer.hpp (limited to 'include/mbgl/map') diff --git a/include/mbgl/map/backend.hpp b/include/mbgl/map/backend.hpp index 4a43921c0b..cd756abe43 100644 --- a/include/mbgl/map/backend.hpp +++ b/include/mbgl/map/backend.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include @@ -12,7 +12,7 @@ class Context; class BackendScope; -class Backend { +class Backend : public MapObserver { public: Backend(); virtual ~Backend(); @@ -24,9 +24,6 @@ public: // in the near future. (Not called for Map::renderStill() mode.) virtual void invalidate() = 0; - // Notifies a watcher of map x/y/scale/rotation changes. - virtual void notifyMapChange(MapChange change); - protected: // Called when the backend's GL context needs to be made active or inactive. These are called, // as a matched pair, in four situations: diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp index 02e14bea4e..79fcd34d9b 100644 --- a/include/mbgl/map/map.hpp +++ b/include/mbgl/map/map.hpp @@ -2,6 +2,7 @@ #include #include +#include #include #include #include diff --git a/include/mbgl/map/map_observer.hpp b/include/mbgl/map/map_observer.hpp new file mode 100644 index 0000000000..e0a734cf5b --- /dev/null +++ b/include/mbgl/map/map_observer.hpp @@ -0,0 +1,38 @@ +#pragma once + +#include + +namespace mbgl { + +class MapObserver { +public: + 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() {} + virtual void onWillStartRenderingFrame() {} + virtual void onDidFinishRenderingFrame(RenderMode) {} + virtual void onWillStartRenderingMap() {} + virtual void onDidFinishRenderingMap(RenderMode) {} + virtual void onDidFinishLoadingStyle() {} + virtual void onSourceDidChange() {} +}; + +} // namespace mbgl -- cgit v1.2.1