From 7f74a2e949716a856e0b0c466f943f923204d258 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Tue, 1 Nov 2011 20:13:35 +1000 Subject: [PATCH] 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 --- src/declarative/particles/qquickimageparticle.cpp | 8 +++++++- src/declarative/particles/qquickparticlepainter.cpp | 2 +- tests/auto/particles/qquickimageparticle/qquickimageparticle.pro | 1 - 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/declarative/particles/qquickimageparticle.cpp b/src/declarative/particles/qquickimageparticle.cpp index 49bdcb2..0847d06 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 cc0b4da..6d44e9a 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(d->group, d->index); } diff --git a/tests/auto/particles/qquickimageparticle/qquickimageparticle.pro b/tests/auto/particles/qquickimageparticle/qquickimageparticle.pro index 2ae5159..14d28fd 100644 --- a/tests/auto/particles/qquickimageparticle/qquickimageparticle.pro +++ b/tests/auto/particles/qquickimageparticle/qquickimageparticle.pro @@ -8,4 +8,3 @@ testDataFiles.path = . DEPLOYMENT += testDataFiles QT += core-private gui-private v8-private declarative-private opengl-private testlib -CONFIG += insignificant_test -- 2.7.4