diff options
author | Gunnar Sletta <gunnar.sletta@jollamobile.com> | 2014-01-22 10:26:14 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-22 15:51:31 +0100 |
commit | 52a9d06bb028a16d9cf9be563a8ad1df09023439 (patch) | |
tree | 4036a59dc99a7390afb4310ab584d489ee34d176 /src/quick/scenegraph/qsgcontext_p.h | |
parent | abc1cb32727a94ddac07020759c3c97382477cf9 (diff) |
Enforce texture cleanup to happen at the end of the sync phase.
This was ok for the threaded renderer, but for the single-threaded
renderers where the event loop was spinning we could run the risk
of scheduling a texture for deleteLater() and then cleaning it
up before we got around to the sync phase.
Task-number: QTBUG-35670
Change-Id: I92074294b427fd8ab2a1823ba79c7ac3b59094ec
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Diffstat (limited to 'src/quick/scenegraph/qsgcontext_p.h')
-rw-r--r-- | src/quick/scenegraph/qsgcontext_p.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/quick/scenegraph/qsgcontext_p.h b/src/quick/scenegraph/qsgcontext_p.h index c562a909c5..c1bf78a018 100644 --- a/src/quick/scenegraph/qsgcontext_p.h +++ b/src/quick/scenegraph/qsgcontext_p.h @@ -94,6 +94,7 @@ public: virtual void invalidate(); virtual void renderNextFrame(QSGRenderer *renderer, GLuint fboId); + virtual void endSync(); virtual QSharedPointer<QSGDepthStencilBuffer> depthStencilBufferForFbo(QOpenGLFramebufferObject *fbo); QSGDepthStencilBufferManager *depthStencilBufferManager(); @@ -124,6 +125,7 @@ protected: QMutex m_mutex; QHash<QQuickTextureFactory *, QSGTexture *> m_textures; + QSet<QSGTexture *> m_texturesToDelete; QSGAtlasTexture::Manager *m_atlasManager; QSGDepthStencilBufferManager *m_depthStencilManager; |