It was possible for the cache to be updated before groups were properly
assigned, and it didn't update when they were.
Change-Id: If6835e2aad4a2412d17eb727da5d2414e4c20d60
Reviewed-by: Martin Jones <martin.jones@nokia.com>
}
bool QQuickParticleAffector::activeGroup(int g) {
- if (m_updateIntSet){
+ if (m_updateIntSet){ //This can occur before group ids are properly assigned, but that resets the flag
m_groupIds.clear();
foreach (const QString &p, m_groups)
- m_groupIds << m_system->groupIds[p];//###Can this occur before group ids are properly assigned?
+ m_groupIds << m_system->groupIds[p];
m_updateIntSet = false;
}
return m_groupIds.isEmpty() || m_groupIds.contains(g);
if (particleCount > bySysIdx.size())//New datum requests haven't updated it
bySysIdx.resize(particleCount);
+ foreach (QQuickParticleAffector *a, m_affectors)//Groups may have changed
+ a->m_updateIntSet = true;
+
foreach (QQuickParticlePainter *p, m_painters)
loadPainter(p);