summaryrefslogtreecommitdiff
path: root/Source/WebKit/qt/WidgetSupport
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 /Source/WebKit/qt/WidgetSupport
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 'Source/WebKit/qt/WidgetSupport')
-rw-r--r--Source/WebKit/qt/WidgetSupport/PageClientQt.cpp36
1 files changed, 30 insertions, 6 deletions
diff --git a/Source/WebKit/qt/WidgetSupport/PageClientQt.cpp b/Source/WebKit/qt/WidgetSupport/PageClientQt.cpp
index 411bd65f0..8333a59cc 100644
--- a/Source/WebKit/qt/WidgetSupport/PageClientQt.cpp
+++ b/Source/WebKit/qt/WidgetSupport/PageClientQt.cpp
@@ -31,6 +31,9 @@
#ifdef QT_OPENGL_LIB
#include <QGLWidget>
#endif
+#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0)
+#include <QOpenGLWidget>
+#endif
#if USE(ACCELERATED_COMPOSITING)
#include "TextureMapper.h"
@@ -181,15 +184,26 @@ void PageClientQGraphicsWidget::repaintViewport()
bool PageClientQGraphicsWidget::makeOpenGLContextCurrentIfAvailable()
{
-#if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL) && defined(QT_OPENGL_LIB)
+#if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL)
QGraphicsView* graphicsView = firstGraphicsView();
if (graphicsView && graphicsView->viewport()) {
- QGLWidget* glWidget = qobject_cast<QGLWidget*>(graphicsView->viewport());
- if (glWidget) {
+ QWidget *widget = graphicsView->viewport();
+#if defined(QT_OPENGL_LIB)
+ if (widget->inherits("QGLWidget")) {
+
+ QGLWidget* glWidget = static_cast<QGLWidget*>(widget);
// The GL context belonging to the QGLWidget viewport must be current when TextureMapper is being created.
glWidget->makeCurrent();
return true;
}
+#endif
+#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0)
+ if (widget->inherits("QOpenGLWidget")) {
+ QOpenGLWidget *qoglWidget = static_cast<QOpenGLWidget*>(widget);
+ qoglWidget->makeCurrent();
+ return true;
+ }
+#endif
}
#endif
return false;
@@ -197,12 +211,22 @@ bool PageClientQGraphicsWidget::makeOpenGLContextCurrentIfAvailable()
QOpenGLContext* PageClientQGraphicsWidget::openGLContextIfAvailable()
{
-#if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL) && defined(QT_OPENGL_LIB)
+#if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL)
QGraphicsView* graphicsView = firstGraphicsView();
if (graphicsView && graphicsView->viewport()) {
- QGLWidget* glWidget = qobject_cast<QGLWidget*>(graphicsView->viewport());
- if (glWidget)
+ QWidget *widget = graphicsView->viewport();
+#if defined(QT_OPENGL_LIB)
+ if (widget->inherits("QGLWidget")) {
+ QGLWidget* glWidget = static_cast<QGLWidget*>(widget);
return glWidget->context()->contextHandle();
+ }
+#endif
+#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0)
+ if (widget->inherits("QOpenGLWidget")) {
+ QOpenGLWidget *qoglWidget = static_cast<QOpenGLWidget*>(widget);
+ return qoglWidget->context();
+ }
+#endif
}
#endif
return 0;