diff options
Diffstat (limited to 'include/mbgl/map/backend.hpp')
-rw-r--r-- | include/mbgl/map/backend.hpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/mbgl/map/backend.hpp b/include/mbgl/map/backend.hpp new file mode 100644 index 0000000000..e4a5634b88 --- /dev/null +++ b/include/mbgl/map/backend.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include <mbgl/map/change.hpp> + +namespace mbgl { + +class Map; + +class Backend { +public: + virtual ~Backend() = default; + + // Called when the backend's GL context needs to be made active or inactive. These are called, + // as a matched pair, in four situations: + // + // 1. When releasing GL resources during Map destruction + // 2. When calling a CustomLayerInitializeFunction, during Map::addLayer + // 3. When calling a CustomLayerDeinitializeFunction, during Map::removeLayer + // 4. When rendering for Map::renderStill + // + // They are *not* called for Map::render; it is assumed that the correct context is already + // activated prior to calling Map::render. + virtual void activate() = 0; + virtual void deactivate() = 0; + + // Called when the map needs to be rendered; the backend should call Map::render() at some point + // 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); +}; + +} // namespace mbgl |