diff options
author | Giulio Camuffo <giulio.camuffo@jollamobile.com> | 2014-10-31 11:14:15 +0200 |
---|---|---|
committer | Giulio Camuffo <giulio.camuffo@jollamobile.com> | 2014-11-10 19:37:49 +0100 |
commit | f2ed856a541623b7564e0805fc7b3f868d17e200 (patch) | |
tree | 24f261c749cba9077b4feb61622ccc277cf81d32 /src/compositor/compositor_api/qwaylandquicksurface.cpp | |
parent | 7882407bb6bab6c042fd20592a63a875b74eb581 (diff) |
Make sure to have valid textures
The texture of QWaylandSurfaceItem's texture provider was updated in
QWaylandSurfaceItem::updatePaintNode(). That is fine as long as the
texture is accessed after the updatePaintNode() call, but if not we
would access an invalid texture.
That could happen when another QQuickItem subclass was accessing the
textire in its updatePaintNode(). We don't have any guarantee on the
order of the updatePaintNode() calls, so the other item could be
updated before the QWaylandSurfaceItem.
Change-Id: I7320d445c72796ce26f8d8483175a35e9c6840e7
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Diffstat (limited to 'src/compositor/compositor_api/qwaylandquicksurface.cpp')
-rw-r--r-- | src/compositor/compositor_api/qwaylandquicksurface.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/compositor/compositor_api/qwaylandquicksurface.cpp b/src/compositor/compositor_api/qwaylandquicksurface.cpp index ae3dfbb5d..166514f73 100644 --- a/src/compositor/compositor_api/qwaylandquicksurface.cpp +++ b/src/compositor/compositor_api/qwaylandquicksurface.cpp @@ -212,12 +212,16 @@ void QWaylandQuickSurface::updateTexture() Q_D(QWaylandQuickSurface); if (d->buffer->update) d->buffer->createTexture(); + foreach (QWaylandSurfaceView *view, views()) + static_cast<QWaylandSurfaceItem *>(view)->updateTexture(); } void QWaylandQuickSurface::invalidateTexture() { Q_D(QWaylandQuickSurface); d->buffer->invalidateTexture(); + foreach (QWaylandSurfaceView *view, views()) + static_cast<QWaylandSurfaceItem *>(view)->updateTexture(); } bool QWaylandQuickSurface::clientRenderingEnabled() const |