diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2014-08-06 12:07:59 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2014-08-06 18:28:45 +0200 |
commit | f0c216a887850d14e42116bcac55a9a7a87ae298 (patch) | |
tree | 53069534e6222d808d2c2611c5983698201bd472 /Tools/QtTestBrowser | |
parent | 81905b2cdab344e33550abd571046e65816cb416 (diff) | |
download | qtwebkit-f0c216a887850d14e42116bcac55a9a7a87ae298.tar.gz |
Support QOpenGLWidget for accelerated compositing
This patch enables the use of QOpenGLWidget for the same role
QGLWidget can be used to enable accelerated compositing in QtWebKit.
Change-Id: I7ac5c00c3a4b411637544128fc5d805781b9da4d
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'Tools/QtTestBrowser')
-rw-r--r-- | Tools/QtTestBrowser/launcherwindow.cpp | 36 | ||||
-rw-r--r-- | Tools/QtTestBrowser/launcherwindow.h | 10 | ||||
-rw-r--r-- | Tools/QtTestBrowser/qttestbrowser.cpp | 13 |
3 files changed, 48 insertions, 11 deletions
diff --git a/Tools/QtTestBrowser/launcherwindow.cpp b/Tools/QtTestBrowser/launcherwindow.cpp index 54efa699a..e2dcef39f 100644 --- a/Tools/QtTestBrowser/launcherwindow.cpp +++ b/Tools/QtTestBrowser/launcherwindow.cpp @@ -175,8 +175,11 @@ void LauncherWindow::initializeView() WebViewGraphicsBased* view = new WebViewGraphicsBased(splitter); m_view = view; #ifndef QT_NO_OPENGL - toggleQGLWidgetViewport(m_windowOptions.useQGLWidgetViewport); + if (!m_windowOptions.useQOpenGLWidgetViewport) + toggleQGLWidgetViewport(m_windowOptions.useQGLWidgetViewport); #endif + if (!m_windowOptions.useQGLWidgetViewport) + toggleQOpenGLWidgetViewport(m_windowOptions.useQOpenGLWidgetViewport); view->setPage(page()); connect(view, SIGNAL(currentFPSUpdated(int)), this, SLOT(updateFPS(int))); @@ -405,6 +408,13 @@ void LauncherWindow::createChrome() toggleQGLWidgetViewport->setEnabled(isGraphicsBased()); toggleQGLWidgetViewport->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); #endif +#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) + QAction* toggleQOpenGLWidgetViewport = graphicsViewMenu->addAction("Toggle use of QOpenGLWidget Viewport", this, SLOT(toggleQOpenGLWidgetViewport(bool))); + toggleQOpenGLWidgetViewport->setCheckable(true); + toggleQOpenGLWidgetViewport->setChecked(m_windowOptions.useQOpenGLWidgetViewport); + toggleQOpenGLWidgetViewport->setEnabled(isGraphicsBased()); + toggleQOpenGLWidgetViewport->connect(toggleGraphicsView, SIGNAL(toggled(bool)), SLOT(setEnabled(bool))); +#endif QMenu* viewportUpdateMenu = graphicsViewMenu->addMenu("Change Viewport Update Mode"); viewportUpdateMenu->setEnabled(isGraphicsBased()); @@ -790,8 +800,11 @@ void LauncherWindow::screenshot() #endif #ifndef QT_NO_OPENGL - toggleQGLWidgetViewport(m_windowOptions.useQGLWidgetViewport); + if (!m_windowOptions.useQOpenGLWidgetViewport) + toggleQGLWidgetViewport(m_windowOptions.useQGLWidgetViewport); #endif + if (!m_windowOptions.useQGLWidgetViewport) + toggleQOpenGLWidgetViewport(m_windowOptions.useQOpenGLWidgetViewport); } void LauncherWindow::setEditable(bool on) @@ -977,13 +990,30 @@ void LauncherWindow::toggleQGLWidgetViewport(bool enable) if (!isGraphicsBased()) return; + if (enable) + m_windowOptions.useQOpenGLWidgetViewport = false; m_windowOptions.useQGLWidgetViewport = enable; - WebViewGraphicsBased* view = static_cast<WebViewGraphicsBased*>(m_view); + WebViewGraphicsBased* view = static_cast<WebViewGraphicsBased*>(m_view); view->setViewport(enable ? new QGLWidget() : 0); } #endif +void LauncherWindow::toggleQOpenGLWidgetViewport(bool enable) +{ + if (!isGraphicsBased()) + return; + +#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) + if (enable) + m_windowOptions.useQGLWidgetViewport = false; + m_windowOptions.useQOpenGLWidgetViewport = enable; + + WebViewGraphicsBased* view = static_cast<WebViewGraphicsBased*>(m_view); + view->setViewport(enable ? new QOpenGLWidget() : 0); +#endif +} + void LauncherWindow::changeViewportUpdateMode(int mode) { m_windowOptions.viewportUpdateMode = QGraphicsView::ViewportUpdateMode(mode); diff --git a/Tools/QtTestBrowser/launcherwindow.h b/Tools/QtTestBrowser/launcherwindow.h index 4645c7e58..c470a5adc 100644 --- a/Tools/QtTestBrowser/launcherwindow.h +++ b/Tools/QtTestBrowser/launcherwindow.h @@ -38,6 +38,9 @@ #ifndef QT_NO_OPENGL #include <QtOpenGL/QGLWidget> #endif +#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0) +#include <QOpenGLWidget> +#endif #include <QDebug> @@ -82,9 +85,8 @@ public: , useDiskCookies(true) , enableScrollAnimator(false) , offlineStorageDefaultQuotaSize(0) -#ifndef QT_NO_OPENGL , useQGLWidgetViewport(false) -#endif + , useQOpenGLWidgetViewport(false) , printLoadedUrls(false) , startMaximized(false) { @@ -107,9 +109,8 @@ public: bool useDiskCookies; bool enableScrollAnimator; quint64 offlineStorageDefaultQuotaSize; -#ifndef QT_NO_OPENGL bool useQGLWidgetViewport; -#endif + bool useQOpenGLWidgetViewport; bool printLoadedUrls; QUrl inspectorUrl; quint16 remoteInspectorPort; @@ -180,6 +181,7 @@ protected Q_SLOTS: #ifndef QT_NO_OPENGL void toggleQGLWidgetViewport(bool enable); #endif + void toggleQOpenGLWidgetViewport(bool enable); void changeViewportUpdateMode(int mode); void animatedFlip(); diff --git a/Tools/QtTestBrowser/qttestbrowser.cpp b/Tools/QtTestBrowser/qttestbrowser.cpp index 9fd7d0c22..ee1e7d4fa 100644 --- a/Tools/QtTestBrowser/qttestbrowser.cpp +++ b/Tools/QtTestBrowser/qttestbrowser.cpp @@ -128,8 +128,9 @@ void LauncherApplication::handleUserOptions() << "[-no-compositing]" #if defined(QT_CONFIGURED_WITH_OPENGL) << "[-gl-viewport]" - << "[-webgl]" #endif + << "[-opengl-viewport]" + << "[-webgl]" << QString("[-viewport-update-mode %1]").arg(formatKeys(updateModes)).toLatin1().data() #if !defined(QT_NO_NETWORKDISKCACHE) && !defined(QT_NO_DESKTOPSERVICES) << "[-disk-cache]" @@ -159,7 +160,6 @@ void LauncherApplication::handleUserOptions() windowOptions.useGraphicsView = true; if (args.contains("-no-compositing")) { - requiresGraphicsView("-no-compositing"); windowOptions.useCompositing = false; } @@ -235,11 +235,16 @@ void LauncherApplication::handleUserOptions() windowOptions.useQGLWidgetViewport = true; } +#endif if (args.contains("-webgl")) { - requiresGraphicsView("-webgl"); windowOptions.useWebGL = true; } -#endif + + if (args.contains("-opengl-viewport")) { + requiresGraphicsView("-opengl-viewport"); + windowOptions.useQOpenGLWidgetViewport = true; + } + if (args.contains("-use-test-fonts")) WebKit::QtTestSupport::initializeTestFonts(); |