Make the QtQuick window surface type configurable
authorSimon Hausmann <simon.hausmann@digia.com>
Fri, 8 Aug 2014 08:32:53 +0000 (10:32 +0200)
committerSimon Hausmann <simon.hausmann@digia.com>
Fri, 8 Aug 2014 18:05:47 +0000 (20:05 +0200)
The default remains OpenGLSurface.

Change-Id: I96b400b7aa9c2b0435ea0614598e1b1f32b6d6b2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
src/quick/items/qquickwindow.cpp
src/quick/scenegraph/qsgrenderloop.cpp
src/quick/scenegraph/qsgrenderloop_p.h

index 1640b58..b987a39 100644 (file)
@@ -465,7 +465,7 @@ void QQuickWindowPrivate::init(QQuickWindow *c, QQuickRenderControl *control)
         context = windowManager->createRenderContext(sg);
     }
 
-    q->setSurfaceType(QWindow::OpenGLSurface);
+    q->setSurfaceType(windowManager ? windowManager->windowSurfaceType() : QSurface::OpenGLSurface);
     q->setFormat(q->defaultFormat());
 
     animationController = new QQuickAnimatorController();
index 064d363..0f43ecf 100644 (file)
@@ -86,6 +86,11 @@ QSGRenderLoop::~QSGRenderLoop()
 {
 }
 
+QSurface::SurfaceType QSGRenderLoop::windowSurfaceType() const
+{
+    return QSurface::OpenGLSurface;
+}
+
 void QSGRenderLoop::cleanup()
 {
     if (!s_instance)
index 8d5312b..b398a64 100644 (file)
@@ -43,6 +43,7 @@
 #define QSGRenderLoop_P_H
 
 #include <QtGui/QImage>
+#include <QtGui/QSurface>
 #include <private/qtquickglobal_p.h>
 #include <QtCore/QSet>
 
@@ -83,6 +84,8 @@ public:
     void removeWindow(QQuickWindow *win) { m_windows.remove(win); }
     QSet<QQuickWindow *> windows() const { return m_windows; }
 
+    virtual QSurface::SurfaceType windowSurfaceType() const;
+
     // ### make this less of a singleton
     static QSGRenderLoop *instance();
     static void setInstance(QSGRenderLoop *instance);