aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/particles
diff options
context:
space:
mode:
authorAlan Alpert <alan.alpert@nokia.com>2011-11-01 20:13:35 +1000
committerQt by Nokia <qt-info@nokia.com>2011-11-02 08:25:58 +0100
commit7f74a2e949716a856e0b0c466f943f923204d258 (patch)
treea3be17b7a363d8e3faff9b9491a1188db59aeaac /src/declarative/particles
parent685a00d7776de64366a4aa60bf154bea99c9026d (diff)
Make initialize work despite pending resets
This allows for the data to be updated instantly, instead of waiting for the reset in the next paint event. This is needed by the QQuickImageParticle autotest to pass stably. Change-Id: I554eb9d9ddbfc6ba06264dedafb14498685e04cf Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/declarative/particles')
-rw-r--r--src/declarative/particles/qquickimageparticle.cpp8
-rw-r--r--src/declarative/particles/qquickparticlepainter.cpp2
2 files changed, 8 insertions, 2 deletions
diff --git a/src/declarative/particles/qquickimageparticle.cpp b/src/declarative/particles/qquickimageparticle.cpp
index 49bdcb2aa7..0847d06b6d 100644
--- a/src/declarative/particles/qquickimageparticle.cpp
+++ b/src/declarative/particles/qquickimageparticle.cpp
@@ -1518,7 +1518,13 @@ void QQuickImageParticle::initialize(int gIdx, int pIdx)
qreal redVariation = m_color_variation + m_redVariation;
qreal greenVariation = m_color_variation + m_greenVariation;
qreal blueVariation = m_color_variation + m_blueVariation;
- int spriteIdx = m_idxStarts[gIdx] + datum->index;
+ int spriteIdx = 0;
+ if (m_spriteEngine) {
+ spriteIdx = m_idxStarts[gIdx] + datum->index;
+ if (spriteIdx >= m_spriteEngine->count())
+ m_spriteEngine->setCount(spriteIdx+1);
+ }
+
float rotation;
float rotationSpeed;
float autoRotate;
diff --git a/src/declarative/particles/qquickparticlepainter.cpp b/src/declarative/particles/qquickparticlepainter.cpp
index cc0b4da181..6d44e9a944 100644
--- a/src/declarative/particles/qquickparticlepainter.cpp
+++ b/src/declarative/particles/qquickparticlepainter.cpp
@@ -91,9 +91,9 @@ void QQuickParticlePainter::setSystem(QQuickParticleSystem *arg)
void QQuickParticlePainter::load(QQuickParticleData* d)
{
+ initialize(d->group, d->index);
if (m_pleaseReset)
return;
- initialize(d->group, d->index);
m_pendingCommits << qMakePair<int, int>(d->group, d->index);
}