Avoid calling maybeUpdate() during ShaderEffectSource cleanup.
authorKim Motoyoshi Kalland <kim.kalland@nokia.com>
Tue, 15 Nov 2011 16:20:46 +0000 (17:20 +0100)
committerQt by Nokia <qt-info@nokia.com>
Wed, 16 Nov 2011 06:56:24 +0000 (07:56 +0100)
markDirtyTexture() causes sceneGraphChanged() to be emitted from
the renderer containing the ShaderEffectSource, which in turn
causes QQuickCanvasRenderThread::maybeUpdate() to be called.

Change-Id: I3c068e41501ed4cb2c5f4ff705ffd478743b4beb
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>

src/declarative/items/qquickshadereffectsource.cpp

index 252c0ba..92e2072 100644 (file)
@@ -116,6 +116,8 @@ QQuickShaderEffectTexture::QQuickShaderEffectTexture(QQuickItem *shaderSource)
 
 QQuickShaderEffectTexture::~QQuickShaderEffectTexture()
 {
+    if (m_renderer)
+        disconnect(m_renderer, SIGNAL(sceneGraphChanged()), this, SLOT(markDirtyTexture()));
     delete m_renderer;
     delete m_fbo;
     delete m_secondaryFbo;