QQuickWindow cleanup: Remove forceRendering flag
authorPaul Olav Tvete <paul.tvete@digia.com>
Mon, 10 Mar 2014 14:26:13 +0000 (15:26 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Wed, 12 Mar 2014 11:11:29 +0000 (12:11 +0100)
forceRendering was introduced for QQuickWidget, but QQuickWidget
now has full control of when the rendering functions are called. It
makes more sense to not call the QQuickRenderControl functions, than to
set a flag on QQuickWidget that decides whether those functions have any
effect.

Change-Id: I69819b13000120c04cecd1a467c08e8df9330df8
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
src/quick/items/qquickrendercontrol.cpp
src/quick/items/qquickwindow.cpp
src/quick/items/qquickwindow_p.h
src/quickwidgets/qquickwidget.cpp

index 16ed6f0..10a9691 100644 (file)
@@ -136,7 +136,7 @@ void QQuickRenderControl::invalidate()
 void QQuickRenderControl::polishItems()
 {
     Q_D(QQuickRenderControl);
-    if (!d->window || !QQuickWindowPrivate::get(d->window)->isRenderable())
+    if (!d->window)
         return;
 
     QQuickWindowPrivate *cd = QQuickWindowPrivate::get(d->window);
@@ -151,7 +151,7 @@ void QQuickRenderControl::polishItems()
 bool QQuickRenderControl::sync()
 {
     Q_D(QQuickRenderControl);
-    if (!d->window || !QQuickWindowPrivate::get(d->window)->isRenderable())
+    if (!d->window)
         return false;
 
     QQuickWindowPrivate *cd = QQuickWindowPrivate::get(d->window);
@@ -187,7 +187,7 @@ void QQuickRenderControl::stop()
 void QQuickRenderControl::render()
 {
     Q_D(QQuickRenderControl);
-    if (!d->window || !QQuickWindowPrivate::get(d->window)->isRenderable())
+    if (!d->window)
         return;
 
     QQuickWindowPrivate *cd = QQuickWindowPrivate::get(d->window);
index bbc4e8b..0669643 100644 (file)
@@ -409,7 +409,6 @@ QQuickWindowPrivate::QQuickWindowPrivate()
     , persistentSceneGraph(true)
     , lastWheelEventAccepted(false)
     , componentCompleted(true)
-    , forceRendering(false)
     , renderTarget(0)
     , renderTargetId(0)
     , incubationController(0)
@@ -2300,7 +2299,7 @@ void QQuickWindowPrivate::data_clear(QQmlListProperty<QObject> *property)
 bool QQuickWindowPrivate::isRenderable() const
 {
     Q_Q(const QQuickWindow);
-    return (forceRendering || (q->isExposed() && q->isVisible())) && q->geometry().isValid();
+    return ((q->isExposed() && q->isVisible())) && q->geometry().isValid();
 }
 
 /*!
index 8b6073c..e78f00c 100644 (file)
@@ -222,7 +222,6 @@ public:
 
     uint lastWheelEventAccepted : 1;
     bool componentCompleted : 1;
-    bool forceRendering : 1;
 
     QOpenGLFramebufferObject *renderTarget;
     uint renderTargetId;
index e1e581a..dbc7d6c 100644 (file)
@@ -162,6 +162,9 @@ void QQuickWidgetPrivate::renderSceneGraph()
     Q_Q(QQuickWidget);
     updatePending = false;
 
+    if (!q->isVisible() || fakeHidden)
+        return;
+
     QOpenGLContext *context = offscreenWindow->openglContext();
     if (!context) {
         qWarning("QQuickWidget: render scenegraph with no context");
@@ -718,13 +721,11 @@ void QQuickWidget::resizeEvent(QResizeEvent *e)
 
     if (e->size().isEmpty()) {
         //stop rendering
-        QQuickWindowPrivate::get(d->offscreenWindow)->forceRendering = false;
         d->fakeHidden = true;
         return;
     }
     if (d->fakeHidden) {
         //restart rendering
-        QQuickWindowPrivate::get(d->offscreenWindow)->forceRendering = true;
         d->fakeHidden = false;
         d->renderControl->sync();
     }
@@ -798,8 +799,6 @@ void QQuickWidget::mouseDoubleClickEvent(QMouseEvent *e)
 void QQuickWidget::showEvent(QShowEvent *)
 {
     Q_D(QQuickWidget);
-    QQuickWindowPrivate::get(d->offscreenWindow)->forceRendering = true;
-
     d->updatePending = false;
     d->createContext();
     triggerUpdate();
@@ -809,7 +808,6 @@ void QQuickWidget::showEvent(QShowEvent *)
 void QQuickWidget::hideEvent(QHideEvent *)
 {
     Q_D(QQuickWidget);
-    QQuickWindowPrivate::get(d->offscreenWindow)->forceRendering = false;
 
     if (!d->context) {
         qWarning("QQuickWidget::hideEvent with no context");