diff options
author | Thiago Marcos P. Santos <thiago@mapbox.com> | 2015-11-29 00:27:34 +0200 |
---|---|---|
committer | Thiago Marcos P. Santos <thiago@mapbox.com> | 2016-03-21 23:58:48 -0300 |
commit | baf30cd1f776ec0a44688c12580bacf45e33c93c (patch) | |
tree | 26bd25735140f3556762a967e0f60897eecf4a4e /include | |
parent | c50194ebfabd90225a65b1e85323827541a3079b (diff) | |
download | qtlocation-mapboxgl-baf30cd1f776ec0a44688c12580bacf45e33c93c.tar.gz |
[glfw] Main loop integration
This new code can be used for rendering on the Main thread
while it will also work for rendering on the Map thread
before we make the switch. Needed by #2909.
Diffstat (limited to 'include')
-rw-r--r-- | include/mbgl/platform/default/glfw_view.hpp | 5 | ||||
-rw-r--r-- | include/mbgl/util/timer.hpp | 29 |
2 files changed, 34 insertions, 0 deletions
diff --git a/include/mbgl/platform/default/glfw_view.hpp b/include/mbgl/platform/default/glfw_view.hpp index ae5bf340d5..802f61b0c0 100644 --- a/include/mbgl/platform/default/glfw_view.hpp +++ b/include/mbgl/platform/default/glfw_view.hpp @@ -2,6 +2,8 @@ #define MBGL_COMMON_GLFW_VIEW #include <mbgl/mbgl.hpp> +#include <mbgl/util/run_loop.hpp> +#include <mbgl/util/timer.hpp> #ifdef MBGL_USE_GLES2 #define GLFW_INCLUDE_ES2 @@ -92,6 +94,9 @@ private: std::function<void()> changeStyleCallback; + mbgl::util::RunLoop runLoop; + mbgl::util::Timer frameTick; + GLFWwindow *window = nullptr; std::atomic_flag clean = ATOMIC_FLAG_INIT; }; diff --git a/include/mbgl/util/timer.hpp b/include/mbgl/util/timer.hpp new file mode 100644 index 0000000000..783241847d --- /dev/null +++ b/include/mbgl/util/timer.hpp @@ -0,0 +1,29 @@ +#ifndef MBGL_UTIL_TIMER +#define MBGL_UTIL_TIMER + +#include <mbgl/util/noncopyable.hpp> +#include <mbgl/util/chrono.hpp> + +#include <memory> +#include <functional> + +namespace mbgl { +namespace util { + +class Timer : private util::noncopyable { +public: + Timer(); + ~Timer(); + + void start(Duration timeout, Duration repeat, std::function<void()>&&); + void stop(); + +private: + class Impl; + std::unique_ptr<Impl> impl; +}; + +} // namespace util +} // namespace mbgl + +#endif |