diff options
author | Mike Morris <michael.patrick.morris@gmail.com> | 2015-08-20 16:11:32 -0400 |
---|---|---|
committer | Mike Morris <michael.patrick.morris@gmail.com> | 2015-08-25 14:39:49 -0400 |
commit | 4540c3c0e8c80de4f0074c1c4328840ebf708470 (patch) | |
tree | ed131f161734d494655b05fe65b20c44d15f6daa /platform/default | |
parent | 15a5532d76c387142db60913c4ce0876d4450eb8 (diff) | |
download | qtlocation-mapboxgl-4540c3c0e8c80de4f0074c1c4328840ebf708470.tar.gz |
View::swap -> View::beforeRender View::afterRender
To be able to resize the framebuffer on the map thread
in HeadlessView.
Diffstat (limited to 'platform/default')
-rw-r--r-- | platform/default/glfw_view.cpp | 6 | ||||
-rw-r--r-- | platform/default/headless_view.cpp | 19 |
2 files changed, 19 insertions, 6 deletions
diff --git a/platform/default/glfw_view.cpp b/platform/default/glfw_view.cpp index 8453845d1e..19f3379947 100644 --- a/platform/default/glfw_view.cpp +++ b/platform/default/glfw_view.cpp @@ -386,7 +386,11 @@ void GLFWView::invalidate() { glfwPostEmptyEvent(); } -void GLFWView::swap() { +void GLFWView::beforeRender() { + // no-op +} + +void GLFWView::afterRender() { glfwSwapBuffers(window); } diff --git a/platform/default/headless_view.cpp b/platform/default/headless_view.cpp index 2d65277850..a582ed579a 100644 --- a/platform/default/headless_view.cpp +++ b/platform/default/headless_view.cpp @@ -114,10 +114,10 @@ bool HeadlessView::isActive() { return std::this_thread::get_id() == thread; } -void HeadlessView::resize(const uint16_t width, const uint16_t height) { - activate(); +void HeadlessView::resizeFramebuffer() { + assert(isActive()); - dimensions = {{ width, height }}; + if (!needsResize) return; clearBuffers(); @@ -158,7 +158,12 @@ void HeadlessView::resize(const uint16_t width, const uint16_t height) { throw std::runtime_error(error); } - deactivate(); + needsResize = false; +} + +void HeadlessView::resize(const uint16_t width, const uint16_t height) { + dimensions = {{ width, height }}; + needsResize = true; } std::unique_ptr<StillImage> HeadlessView::readStillImage() { @@ -293,7 +298,11 @@ void HeadlessView::invalidate() { // no-op } -void HeadlessView::swap() { +void HeadlessView::beforeRender() { + resizeFramebuffer(); +} + +void HeadlessView::afterRender() { // no-op } |