aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/particles
diff options
context:
space:
mode:
authorAlan Alpert <alan.alpert@nokia.com>2011-12-20 20:08:33 +1000
committerQt by Nokia <qt-info@nokia.com>2011-12-22 06:55:20 +0100
commit220b264acc6bf1823bd06f99ebdbee352ff57e3a (patch)
tree0fa17ef32c3035b48bf61c4d365c007bbcf7a3e0 /src/quick/particles
parentb6c8497cdf070c8404a1f3784c4ee6df191bd546 (diff)
Clear pending commits on reset
They will be caught when the nodes are rebuilt, if they're still valid. Change-Id: Iac6e790b604a7deaba98a50dd07754459e9f5e14 Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/quick/particles')
-rw-r--r--src/quick/particles/qquickimageparticle.cpp4
-rw-r--r--src/quick/particles/qquickparticlepainter.cpp2
-rw-r--r--src/quick/particles/qquickparticlepainter_p.h1
3 files changed, 5 insertions, 2 deletions
diff --git a/src/quick/particles/qquickimageparticle.cpp b/src/quick/particles/qquickimageparticle.cpp
index 1566e7ec58..6b8df6112c 100644
--- a/src/quick/particles/qquickimageparticle.cpp
+++ b/src/quick/particles/qquickimageparticle.cpp
@@ -1434,8 +1434,6 @@ void QQuickImageParticle::prepareNextFrame()
{
if (m_rootNode == 0){//TODO: Staggered loading (as emitted)
m_rootNode = buildParticleNodes();
- if (m_rootNode == 0)
- return;
if (m_debugMode) {
qDebug() << "QQuickImageParticle Feature level: " << perfLevel;
qDebug() << "QQuickImageParticle Nodes: ";
@@ -1446,6 +1444,8 @@ void QQuickImageParticle::prepareNextFrame()
}
qDebug() << "Total count: " << count;
}
+ if (m_rootNode == 0)
+ return;
}
qint64 timeStamp = m_system->systemSync(this);
diff --git a/src/quick/particles/qquickparticlepainter.cpp b/src/quick/particles/qquickparticlepainter.cpp
index 812c4b86dc..248bf24bad 100644
--- a/src/quick/particles/qquickparticlepainter.cpp
+++ b/src/quick/particles/qquickparticlepainter.cpp
@@ -106,6 +106,8 @@ void QQuickParticlePainter::reload(QQuickParticleData* d)
void QQuickParticlePainter::reset()
{
+ m_pendingCommits.clear();
+ m_pleaseReset = true;
}
void QQuickParticlePainter::setCount(int c)//### TODO: some resizeing so that particles can reallocate on size change instead of recreate
diff --git a/src/quick/particles/qquickparticlepainter_p.h b/src/quick/particles/qquickparticlepainter_p.h
index 44aac3466f..03f7abde01 100644
--- a/src/quick/particles/qquickparticlepainter_p.h
+++ b/src/quick/particles/qquickparticlepainter_p.h
@@ -89,6 +89,7 @@ public slots:
{
if (m_groups != arg) {
m_groups = arg;
+ //Note: The system watches this as it has to recalc things when groups change. It will request a reset if necessary
emit groupsChanged(arg);
}
}