diff options
Diffstat (limited to 'platform/qt/test/headless_backend_qt.cpp')
-rw-r--r-- | platform/qt/test/headless_backend_qt.cpp | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/platform/qt/test/headless_backend_qt.cpp b/platform/qt/test/headless_backend_qt.cpp index 3f287ae578..1992cab2fa 100644 --- a/platform/qt/test/headless_backend_qt.cpp +++ b/platform/qt/test/headless_backend_qt.cpp @@ -1,5 +1,4 @@ -#include <mbgl/platform/default/headless_backend.hpp> -#include <mbgl/platform/default/headless_display.hpp> +#include <mbgl/gl/headless_backend.hpp> #include <QApplication> #include <QGLContext> @@ -9,8 +8,22 @@ #include <QOpenGLContext> #endif +#include <cassert> + namespace mbgl { +struct QtImpl : public HeadlessBackend::Impl { + void activateContext() final { + widget.makeCurrent(); + } + + void deactivateContext() final { + widget.doneCurrent(); + } + + QGLWidget widget; +}; + gl::glProc HeadlessBackend::initializeExtension(const char* name) { #if QT_VERSION >= 0x050000 QOpenGLContext* thisContext = QOpenGLContext::currentContext(); @@ -21,26 +34,20 @@ gl::glProc HeadlessBackend::initializeExtension(const char* name) { #endif } +bool HeadlessBackend::hasDisplay() { + return true; +}; + void HeadlessBackend::createContext() { + assert(!hasContext()); + 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(); + impl.reset(new QtImpl); } } // namespace mbgl |