summaryrefslogtreecommitdiff
path: root/Tools/QtTestBrowser
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2014-08-06 12:07:59 +0200
committerAllan Sandfeld Jensen <allan.jensen@digia.com>2014-08-06 18:28:45 +0200
commitf0c216a887850d14e42116bcac55a9a7a87ae298 (patch)
tree53069534e6222d808d2c2611c5983698201bd472 /Tools/QtTestBrowser
parent81905b2cdab344e33550abd571046e65816cb416 (diff)
downloadqtwebkit-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.cpp36
-rw-r--r--Tools/QtTestBrowser/launcherwindow.h10
-rw-r--r--Tools/QtTestBrowser/qttestbrowser.cpp13
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();