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 /platform/qt/test | |
parent | 45f4dc0166f2d609d014d2174209fdbe1994c943 (diff) | |
download | qtlocation-mapboxgl-5cc390d694fc7510d445310d8eb9e32429a5e67b.tar.gz |
[core] separate Backend from View for headless rendering
Diffstat (limited to 'platform/qt/test')
-rw-r--r-- | platform/qt/test/headless_backend_qt.cpp | 46 | ||||
-rw-r--r-- | platform/qt/test/headless_view_qt.cpp | 38 |
2 files changed, 53 insertions, 31 deletions
diff --git a/platform/qt/test/headless_backend_qt.cpp b/platform/qt/test/headless_backend_qt.cpp new file mode 100644 index 0000000000..3f287ae578 --- /dev/null +++ b/platform/qt/test/headless_backend_qt.cpp @@ -0,0 +1,46 @@ +#include <mbgl/platform/default/headless_backend.hpp> +#include <mbgl/platform/default/headless_display.hpp> + +#include <QApplication> +#include <QGLContext> +#include <QGLWidget> + +#if QT_VERSION >= 0x050000 +#include <QOpenGLContext> +#endif + +namespace mbgl { + +gl::glProc HeadlessBackend::initializeExtension(const char* name) { +#if QT_VERSION >= 0x050000 + QOpenGLContext* thisContext = QOpenGLContext::currentContext(); + return thisContext->getProcAddress(name); +#else + const QGLContext* thisContext = QGLContext::currentContext(); + return reinterpret_cast<mbgl::gl::glProc>(thisContext->getProcAddress(name)); +#endif +} + +void HeadlessBackend::createContext() { + static const char* argv[] = { "mbgl" }; + static int argc = 1; + static auto* app = new QApplication(argc, const_cast<char**>(argv)); + + Q_UNUSED(app); + + glContext = new QGLWidget; +} + +void HeadlessBackend::destroyContext() { + delete glContext; +} + +void HeadlessBackend::activateContext() { + glContext->makeCurrent(); +} + +void HeadlessBackend::deactivateContext() { + glContext->doneCurrent(); +} + +} // namespace mbgl diff --git a/platform/qt/test/headless_view_qt.cpp b/platform/qt/test/headless_view_qt.cpp index 03ecb741ab..133b4a2371 100644 --- a/platform/qt/test/headless_view_qt.cpp +++ b/platform/qt/test/headless_view_qt.cpp @@ -1,6 +1,7 @@ -#include <mbgl/platform/default/headless_display.hpp> #include <mbgl/platform/default/headless_view.hpp> +#include <mbgl/gl/gl.hpp> + #include <QApplication> #include <QGLContext> #include <QGLWidget> @@ -9,30 +10,13 @@ #include <QOpenGLContext> #endif -namespace mbgl { - -gl::glProc HeadlessView::initializeExtension(const char* name) { -#if QT_VERSION >= 0x050000 - QOpenGLContext* thisContext = QOpenGLContext::currentContext(); - return thisContext->getProcAddress(name); -#else - const QGLContext* thisContext = QGLContext::currentContext(); - return reinterpret_cast<mbgl::gl::glProc>(thisContext->getProcAddress(name)); -#endif -} - -void HeadlessView::createContext() { - static const char* argv[] = { "mbgl" }; - static int argc = 1; - static auto* app = new QApplication(argc, const_cast<char**>(argv)); - - Q_UNUSED(app); +#include <cassert> - glContext = new QGLWidget; -} +namespace mbgl { -void HeadlessView::destroyContext() { - delete glContext; +void HeadlessView::bindFramebuffer() { + assert(fbo); + MBGL_CHECK_ERROR(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo)); } void HeadlessView::resizeFramebuffer() { @@ -95,12 +79,4 @@ void HeadlessView::clearBuffers() { } } -void HeadlessView::activateContext() { - glContext->makeCurrent(); -} - -void HeadlessView::deactivateContext() { - glContext->doneCurrent(); -} - } // namespace mbgl |