diff options
author | Alan Alpert <alan.alpert@nokia.com> | 2011-11-01 20:13:35 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-02 08:25:58 +0100 |
commit | 7f74a2e949716a856e0b0c466f943f923204d258 (patch) | |
tree | a3be17b7a363d8e3faff9b9491a1188db59aeaac /src/declarative/particles | |
parent | 685a00d7776de64366a4aa60bf154bea99c9026d (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.cpp | 8 | ||||
-rw-r--r-- | src/declarative/particles/qquickparticlepainter.cpp | 2 |
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); } |