summaryrefslogtreecommitdiff
path: root/include/mbgl/map/view.hpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2016-10-06 13:23:50 +0200
committerKonstantin Käfer <mail@kkaefer.com>2016-10-25 13:52:36 -0700
commit5cc390d694fc7510d445310d8eb9e32429a5e67b (patch)
tree7a24706f919ac3e8154be8b4ce33aed5bf42188d /include/mbgl/map/view.hpp
parent45f4dc0166f2d609d014d2174209fdbe1994c943 (diff)
downloadqtlocation-mapboxgl-5cc390d694fc7510d445310d8eb9e32429a5e67b.tar.gz
[core] separate Backend from View for headless rendering
Diffstat (limited to 'include/mbgl/map/view.hpp')
-rw-r--r--include/mbgl/map/view.hpp39
1 files changed, 8 insertions, 31 deletions
diff --git a/include/mbgl/map/view.hpp b/include/mbgl/map/view.hpp
index 590eef7237..0dff4b3602 100644
--- a/include/mbgl/map/view.hpp
+++ b/include/mbgl/map/view.hpp
@@ -1,24 +1,23 @@
#pragma once
-#include <mbgl/map/change.hpp>
-#include <mbgl/util/chrono.hpp>
#include <mbgl/util/image.hpp>
#include <array>
-#include <functional>
-#include <memory>
namespace mbgl {
class Map;
-class View {
+class View : private util::noncopyable {
public:
virtual ~View() = default;
- // Called directly after initialization. Must always return the same value, i.e. it may
- // not change over time.
- virtual float getPixelRatio() const = 0;
+ // Called when this View is associated with a Map object.
+ virtual void initialize(Map*);
+
+ // Called when this View is used for rendering. Implementations should ensure that a renderable
+ // object is bound and glClear/glDraw* calls can be done.
+ virtual void bind() = 0;
// Called when the View signaled a dimension change. Must return the logical dimension
// of this map in pixels.
@@ -30,34 +29,12 @@ public:
// different from that rule.
virtual std::array<uint16_t, 2> getFramebufferSize() const = 0;
- // Called when this View is associated with a Map object.
- virtual void initialize(Map*);
-
- // Called when the view'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 view should call Map::render() at some point
- // in the near future. (Not called for Map::renderStill() mode.)
- virtual void invalidate() = 0;
-
// Reads the pixel data from the current framebuffer. If your View implementation
// doesn't support reading from the framebuffer, return a null pointer.
virtual PremultipliedImage readStillImage(std::array<uint16_t, 2> size = {{ 0, 0 }});
- // Notifies a watcher of map x/y/scale/rotation changes.
- virtual void notifyMapChange(MapChange change);
-
protected:
mbgl::Map *map = nullptr;
};
+
} // namespace mbgl