diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2016-10-06 13:23:50 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2016-10-25 13:52:36 -0700 |
commit | 5cc390d694fc7510d445310d8eb9e32429a5e67b (patch) | |
tree | 7a24706f919ac3e8154be8b4ce33aed5bf42188d /include/mbgl/platform/default/glfw_view.hpp | |
parent | 45f4dc0166f2d609d014d2174209fdbe1994c943 (diff) | |
download | qtlocation-mapboxgl-5cc390d694fc7510d445310d8eb9e32429a5e67b.tar.gz |
[core] separate Backend from View for headless rendering
Diffstat (limited to 'include/mbgl/platform/default/glfw_view.hpp')
-rw-r--r-- | include/mbgl/platform/default/glfw_view.hpp | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/include/mbgl/platform/default/glfw_view.hpp b/include/mbgl/platform/default/glfw_view.hpp index 8662a90bf3..a115d03d7f 100644 --- a/include/mbgl/platform/default/glfw_view.hpp +++ b/include/mbgl/platform/default/glfw_view.hpp @@ -1,6 +1,7 @@ #pragma once #include <mbgl/mbgl.hpp> +#include <mbgl/map/backend.hpp> #include <mbgl/util/run_loop.hpp> #include <mbgl/util/timer.hpp> #include <mbgl/util/geometry.hpp> @@ -11,20 +12,36 @@ #define GL_GLEXT_PROTOTYPES #include <GLFW/glfw3.h> -class GLFWView : public mbgl::View { +class GLFWView : public mbgl::View, public mbgl::Backend { public: GLFWView(bool fullscreen = false, bool benchmark = false); ~GLFWView() override; - float getPixelRatio() const override; + float getPixelRatio() const; + + // Callback called when the user presses the key mapped to style change. + // The expected action is to set a new style, different to the current one. + void setChangeStyleCallback(std::function<void()> callback); + + void setShouldClose(); + + void setWindowTitle(const std::string&); + + void run(); + +private: + // mbgl::View implementation + void initialize(mbgl::Map*) override; + void bind() override; std::array<uint16_t, 2> getSize() const override; std::array<uint16_t, 2> getFramebufferSize() const override; - void initialize(mbgl::Map*) override; + // mbgl::Backend implementation void activate() override; void deactivate() override; void invalidate() override; + // Window callbacks static void onKey(GLFWwindow *window, int key, int scancode, int action, int mods); static void onScroll(GLFWwindow *window, double xoffset, double yoffset); static void onWindowResize(GLFWwindow *window, int width, int height); @@ -32,21 +49,12 @@ public: static void onMouseClick(GLFWwindow *window, int button, int action, int modifiers); static void onMouseMove(GLFWwindow *window, double x, double y); - // Callback called when the user presses the key mapped to style change. - // The expected action is to set a new style, different to the current one. - void setChangeStyleCallback(std::function<void()> callback); - - void setShouldClose(); - - void setWindowTitle(const std::string&); - - void run(); + // Internal void report(float duration); void setMapChangeCallback(std::function<void(mbgl::MapChange)> callback); void notifyMapChange(mbgl::MapChange change) override; -private: mbgl::Color makeRandomColor() const; mbgl::Point<double> makeRandomPoint() const; static std::shared_ptr<const mbgl::SpriteImage> |