From: Alan Alpert Date: Tue, 1 Nov 2011 10:13:35 +0000 (+1000) Subject: Make initialize work despite pending resets X-Git-Tag: qt-v5.0.0-alpha1~1237 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7f74a2e949716a856e0b0c466f943f923204d258;p=profile%2Fivi%2Fqtdeclarative.git 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 --- 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