summaryrefslogtreecommitdiff
path: root/include/mbgl/map
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2017-03-13 16:16:38 +0200
committerBruno de Oliveira Abinader <bruno@mapbox.com>2017-03-15 14:53:32 +0200
commitfc70cbf1e12e27737c7a256682524cd617d18f71 (patch)
tree10bf1b6c629bb4c642d060182ab1443cdf0084a4 /include/mbgl/map
parent98f5b71e6db748a2576e9fc6f17b9e76505df1aa (diff)
downloadqtlocation-mapboxgl-fc70cbf1e12e27737c7a256682524cd617d18f71.tar.gz
[core] Replace MapChange enum with MapObserver
Diffstat (limited to 'include/mbgl/map')
-rw-r--r--include/mbgl/map/backend.hpp7
-rw-r--r--include/mbgl/map/map.hpp1
-rw-r--r--include/mbgl/map/map_observer.hpp38
3 files changed, 41 insertions, 5 deletions
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 <mbgl/map/change.hpp>
+#include <mbgl/map/map_observer.hpp>
#include <memory>
@@ -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 <mbgl/util/optional.hpp>
#include <mbgl/util/chrono.hpp>
+#include <mbgl/map/map_observer.hpp>
#include <mbgl/map/mode.hpp>
#include <mbgl/util/geo.hpp>
#include <mbgl/util/feature.hpp>
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 <cstdint>
+
+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