diff options
author | Ulf Hermann <ulf.hermann@digia.com> | 2014-09-16 16:01:40 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@digia.com> | 2014-09-17 11:07:43 +0200 |
commit | e3c21ca0e7681d75a27f825587b1700ead79a864 (patch) | |
tree | 5cab1c28a3d3c9dda640e6f9347c38b50b51d352 /src/quick/items/context2d/qquickcanvasitem.cpp | |
parent | acd0f6244904213f581a55bd416483c5d56ccfb4 (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.cpp | 5 |
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())); |