diff options
author | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-11-27 10:58:56 +0100 |
---|---|---|
committer | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-11-27 10:58:56 +0100 |
commit | 9df70b0304fa44d2f1b1504d7e58d718eab4343a (patch) | |
tree | 95a7b207a39c2b44bd4e80bcc1ea3d36bedd9a99 /src/quick/items/qquickimage.cpp | |
parent | 648d4ae6a3591e916f175e32c12a2ea4f8edb6a9 (diff) | |
parent | 900e3d4ad5f2bc4994ddf164c15c641f85630b81 (diff) |
Merge branch 'stable' into dev
Conflicts:
.qmake.conf
Change-Id: I10d4f9e993d23750a6e8ddc1291b79e47fc83c64
Diffstat (limited to 'src/quick/items/qquickimage.cpp')
-rw-r--r-- | src/quick/items/qquickimage.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/quick/items/qquickimage.cpp b/src/quick/items/qquickimage.cpp index d6be13f3c0..0708304051 100644 --- a/src/quick/items/qquickimage.cpp +++ b/src/quick/items/qquickimage.cpp @@ -532,17 +532,17 @@ QRectF QQuickImage::boundingRect() const QSGTextureProvider *QQuickImage::textureProvider() const { Q_D(const QQuickImage); + + if (!d->window || !d->sceneGraphRenderContext() || QThread::currentThread() != d->sceneGraphRenderContext()->thread()) { + qWarning("QQuickImage::textureProvider: can only be queried on the rendering thread of an exposed window"); + return 0; + } + if (!d->provider) { - // Make sure it gets thread affinity on the rendering thread so deletion works properly.. - Q_ASSERT_X(d->window - && d->sceneGraphContext() - && QThread::currentThread() == d->sceneGraphContext()->thread(), - "QQuickImage::textureProvider", - "Cannot be used outside the GUI thread"); QQuickImagePrivate *dd = const_cast<QQuickImagePrivate *>(d); dd->provider = new QQuickImageTextureProvider; dd->provider->m_smooth = d->smooth; - dd->provider->m_texture = d->sceneGraphContext()->textureForFactory(d->pix.textureFactory(), window()); + dd->provider->m_texture = d->sceneGraphRenderContext()->textureForFactory(d->pix.textureFactory(), window()); } return d->provider; @@ -552,7 +552,7 @@ QSGNode *QQuickImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) { Q_D(QQuickImage); - QSGTexture *texture = d->sceneGraphContext()->textureForFactory(d->pix.textureFactory(), window()); + QSGTexture *texture = d->sceneGraphRenderContext()->textureForFactory(d->pix.textureFactory(), window()); // Copy over the current texture state into the texture provider... if (d->provider) { |