aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/context2d/qquickcanvasitem.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@digia.com>2014-09-16 16:01:40 +0200
committerUlf Hermann <ulf.hermann@digia.com>2014-09-17 11:07:43 +0200
commite3c21ca0e7681d75a27f825587b1700ead79a864 (patch)
tree5cab1c28a3d3c9dda640e6f9347c38b50b51d352 /src/quick/items/context2d/qquickcanvasitem.cpp
parentacd0f6244904213f581a55bd416483c5d56ccfb4 (diff)
Don't assume a QSGRenderContext is valid just because it's not 0
Task-number: QTBUG-41353 Change-Id: I2a8c500ed974b3e5f45f3a1eb1f66c7a24b17d56 Reviewed-by: Andy Nichols <andy.nichols@digia.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Diffstat (limited to 'src/quick/items/context2d/qquickcanvasitem.cpp')
-rw-r--r--src/quick/items/context2d/qquickcanvasitem.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp
index 345af6faf4..587ba6591d 100644
--- a/src/quick/items/context2d/qquickcanvasitem.cpp
+++ b/src/quick/items/context2d/qquickcanvasitem.cpp
@@ -667,7 +667,10 @@ void QQuickCanvasItem::itemChange(QQuickItem::ItemChange change, const QQuickIte
return;
d->window = value.window;
- if (QQuickWindowPrivate::get(d->window)->context != 0) // available context == initialized
+ QSGRenderContext *context = QQuickWindowPrivate::get(d->window)->context;
+
+ // Rendering to FramebufferObject needs a valid OpenGL context.
+ if (context != 0 && (d->renderTarget != FramebufferObject || context->isValid()))
sceneGraphInitialized();
else
connect(d->window, SIGNAL(sceneGraphInitialized()), SLOT(sceneGraphInitialized()));