From: Simon Hausmann Date: Fri, 8 Aug 2014 08:32:53 +0000 (+0200) Subject: Make the QtQuick window surface type configurable X-Git-Tag: v5.3.99+beta1~189 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ed3530bdee2b4cce4855f9196c7dcf492b1eed5c;p=platform%2Fupstream%2Fqtdeclarative.git Make the QtQuick window surface type configurable The default remains OpenGLSurface. Change-Id: I96b400b7aa9c2b0435ea0614598e1b1f32b6d6b2 Reviewed-by: Lars Knoll --- diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 1640b58..b987a39 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -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(); diff --git a/src/quick/scenegraph/qsgrenderloop.cpp b/src/quick/scenegraph/qsgrenderloop.cpp index 064d363..0f43ecf 100644 --- a/src/quick/scenegraph/qsgrenderloop.cpp +++ b/src/quick/scenegraph/qsgrenderloop.cpp @@ -86,6 +86,11 @@ QSGRenderLoop::~QSGRenderLoop() { } +QSurface::SurfaceType QSGRenderLoop::windowSurfaceType() const +{ + return QSurface::OpenGLSurface; +} + void QSGRenderLoop::cleanup() { if (!s_instance) diff --git a/src/quick/scenegraph/qsgrenderloop_p.h b/src/quick/scenegraph/qsgrenderloop_p.h index 8d5312b..b398a64 100644 --- a/src/quick/scenegraph/qsgrenderloop_p.h +++ b/src/quick/scenegraph/qsgrenderloop_p.h @@ -43,6 +43,7 @@ #define QSGRenderLoop_P_H #include +#include #include #include @@ -83,6 +84,8 @@ public: void removeWindow(QQuickWindow *win) { m_windows.remove(win); } QSet windows() const { return m_windows; } + virtual QSurface::SurfaceType windowSurfaceType() const; + // ### make this less of a singleton static QSGRenderLoop *instance(); static void setInstance(QSGRenderLoop *instance);