aboutsummaryrefslogtreecommitdiffstats
path: root/src/particles
diff options
context:
space:
mode:
Diffstat (limited to 'src/particles')
-rw-r--r--src/particles/qquickimageparticle.cpp7
-rw-r--r--src/particles/qquickparticlesystem.cpp14
2 files changed, 17 insertions, 4 deletions
diff --git a/src/particles/qquickimageparticle.cpp b/src/particles/qquickimageparticle.cpp
index fde491b1ef..e388b52db3 100644
--- a/src/particles/qquickimageparticle.cpp
+++ b/src/particles/qquickimageparticle.cpp
@@ -1323,6 +1323,7 @@ void QQuickImageParticle::finishBuildParticleNodes(QSGNode** node)
getState<ImageMaterialData>(m_material)->animSheetSize = QSizeF(image.size());
if (m_spriteEngine)
m_spriteEngine->setCount(m_count);
+ Q_FALLTHROUGH();
case Tabled:
if (!m_material)
m_material = TabledMaterial::createMaterial();
@@ -1355,12 +1356,15 @@ void QQuickImageParticle::finishBuildParticleNodes(QSGNode** node)
getState<ImageMaterialData>(m_material)->colorTable = QSGPlainTexture::fromImage(colortable);
fillUniformArrayFromImage(getState<ImageMaterialData>(m_material)->sizeTable, sizetable, UNIFORM_ARRAY_SIZE);
fillUniformArrayFromImage(getState<ImageMaterialData>(m_material)->opacityTable, opacitytable, UNIFORM_ARRAY_SIZE);
+ Q_FALLTHROUGH();
case Deformable:
if (!m_material)
m_material = DeformableMaterial::createMaterial();
+ Q_FALLTHROUGH();
case Colored:
if (!m_material)
m_material = ColoredMaterial::createMaterial();
+ Q_FALLTHROUGH();
default://Also Simple
if (!m_material)
m_material = SimpleMaterial::createMaterial();
@@ -1530,6 +1534,7 @@ void QQuickImageParticle::prepareNextFrame(QSGNode **node)
if (m_spriteEngine)
m_spriteEngine->updateSprites(timeStamp);//fires signals if anim changed
spritesUpdate(time);
+ Q_FALLTHROUGH();
case Tabled:
case Deformable:
case Colored:
@@ -1691,6 +1696,7 @@ void QQuickImageParticle::initialize(int gIdx, int pIdx)
writeTo->animWidth = getState<ImageMaterialData>(m_material)->animSheetSize.width();
writeTo->animHeight = getState<ImageMaterialData>(m_material)->animSheetSize.height();
}
+ Q_FALLTHROUGH();
case Tabled:
case Deformable:
//Initial Rotation
@@ -1737,6 +1743,7 @@ void QQuickImageParticle::initialize(int gIdx, int pIdx)
getShadowDatum(datum)->autoRotate = autoRotate;
}
}
+ Q_FALLTHROUGH();
case Colored:
//Color initialization
// Particle color
diff --git a/src/particles/qquickparticlesystem.cpp b/src/particles/qquickparticlesystem.cpp
index 99e278238b..6f134f08df 100644
--- a/src/particles/qquickparticlesystem.cpp
+++ b/src/particles/qquickparticlesystem.cpp
@@ -668,8 +668,11 @@ void QQuickParticleSystem::setPaused(bool arg) {
if (m_animation && m_animation->state() != QAbstractAnimation::Stopped)
m_paused ? m_animation->pause() : m_animation->resume();
if (!m_paused) {
- foreach (QQuickParticlePainter *p, m_painters)
- p->update();
+ foreach (QQuickParticlePainter *p, m_painters) {
+ if (p) {
+ p->update();
+ }
+ }
}
emit pausedChanged(arg);
}
@@ -873,8 +876,11 @@ void QQuickParticleSystem::emittersChanged()
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 (QQuickParticleAffector *a, m_affectors) {//Groups may have changed
+ if (a) {
+ a->m_updateIntSet = true;
+ }
+ }
foreach (QQuickParticlePainter *p, m_painters)
loadPainter(p);