diff --git a/src/declarative/particles/qsgangledirection.cpp b/src/declarative/particles/qsgangledirection.cpp index 10a31bf07ea08ba9f78129851359aa66a1618f46..b2fb6b2fb8a856de8f22e3c6ac575d4c84a992dd 100644 --- a/src/declarative/particles/qsgangledirection.cpp +++ b/src/declarative/particles/qsgangledirection.cpp @@ -102,14 +102,15 @@ QSGAngleDirection::QSGAngleDirection(QObject *parent) : } -const QPointF &QSGAngleDirection::sample(const QPointF &from) +const QPointF QSGAngleDirection::sample(const QPointF &from) { - //TODO: Faster + Q_UNUSED(from); + QPointF ret; qreal theta = m_angle*CONV - m_angleVariation*CONV + rand()/float(RAND_MAX) * m_angleVariation*CONV * 2; qreal mag = m_magnitude- m_magnitudeVariation + rand()/float(RAND_MAX) * m_magnitudeVariation * 2; - m_ret.setX(mag * cos(theta)); - m_ret.setY(mag * sin(theta)); - return m_ret; + ret.setX(mag * cos(theta)); + ret.setY(mag * sin(theta)); + return ret; } QT_END_NAMESPACE diff --git a/src/declarative/particles/qsgangledirection_p.h b/src/declarative/particles/qsgangledirection_p.h index 870a7eb0d91656b058a42d87059bc2afa2bb6654..b68d751fd85f14bf93a7463f1a2c8440ad91f44f 100644 --- a/src/declarative/particles/qsgangledirection_p.h +++ b/src/declarative/particles/qsgangledirection_p.h @@ -57,7 +57,7 @@ class QSGAngleDirection : public QSGDirection Q_PROPERTY(qreal magnitudeVariation READ magnitudeVariation WRITE setMagnitudeVariation NOTIFY magnitudeVariationChanged) public: explicit QSGAngleDirection(QObject *parent = 0); - const QPointF &sample(const QPointF &from); + const QPointF sample(const QPointF &from); qreal angle() const { return m_angle; diff --git a/src/declarative/particles/qsgcumulativedirection.cpp b/src/declarative/particles/qsgcumulativedirection.cpp index 8e4e6b681d96ee03a8886356d528dc77028792f4..f2bfea3acb4339267b68c547568c058beadb1567 100644 --- a/src/declarative/particles/qsgcumulativedirection.cpp +++ b/src/declarative/particles/qsgcumulativedirection.cpp @@ -59,7 +59,7 @@ QDeclarativeListProperty<QSGDirection> QSGCumulativeDirection::directions() return QDeclarativeListProperty<QSGDirection>(this, m_directions);//TODO: Proper list property } -const QPointF &QSGCumulativeDirection::sample(const QPointF &from) +const QPointF QSGCumulativeDirection::sample(const QPointF &from) { QPointF ret; foreach (QSGDirection* dir, m_directions) diff --git a/src/declarative/particles/qsgcumulativedirection_p.h b/src/declarative/particles/qsgcumulativedirection_p.h index 4f93fed1bd0c04bd09e5e4b6e838999b7a12ad49..a77f50fd5b9a02122b405784757dc5adbdbf5d3f 100644 --- a/src/declarative/particles/qsgcumulativedirection_p.h +++ b/src/declarative/particles/qsgcumulativedirection_p.h @@ -57,7 +57,7 @@ class QSGCumulativeDirection : public QSGDirection public: explicit QSGCumulativeDirection(QObject *parent = 0); QDeclarativeListProperty<QSGDirection> directions(); - const QPointF &sample(const QPointF &from); + const QPointF sample(const QPointF &from); private: QList<QSGDirection*> m_directions; }; diff --git a/src/declarative/particles/qsgcustomparticle.cpp b/src/declarative/particles/qsgcustomparticle.cpp index 6c95fe66c0002d8ab8f00ac9d6c8c27ebcf8646f..ab4cfa0a3aefa467dfaed02011483c06978100be 100644 --- a/src/declarative/particles/qsgcustomparticle.cpp +++ b/src/declarative/particles/qsgcustomparticle.cpp @@ -406,6 +406,7 @@ void QSGCustomParticle::lookThroughShaderCode(const QByteArray &code) QSGNode *QSGCustomParticle::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) { + Q_UNUSED(oldNode); if (m_pleaseReset){ //delete m_material;//Shader effect item doesn't regen material? diff --git a/src/declarative/particles/qsgdirection.cpp b/src/declarative/particles/qsgdirection.cpp index f233a56f61ede757888f435c2149e4b7d5860520..eff4b56774165493c664487642b3da1a0e8a17fb 100644 --- a/src/declarative/particles/qsgdirection.cpp +++ b/src/declarative/particles/qsgdirection.cpp @@ -55,9 +55,10 @@ QSGDirection::QSGDirection(QObject *parent) : { } -const QPointF &QSGDirection::sample(const QPointF &from) +const QPointF QSGDirection::sample(const QPointF &from) { - return m_ret; + Q_UNUSED(from); + return QPointF(); } QT_END_NAMESPACE diff --git a/src/declarative/particles/qsgdirection_p.h b/src/declarative/particles/qsgdirection_p.h index f64d5644e7a0f9e1ef3dad8cd57d9947eed51955..a9431450377e285273fca7e1be5ba63c6419aba2 100644 --- a/src/declarative/particles/qsgdirection_p.h +++ b/src/declarative/particles/qsgdirection_p.h @@ -58,13 +58,12 @@ class QSGDirection : public QObject public: explicit QSGDirection(QObject *parent = 0); - virtual const QPointF &sample(const QPointF &from); + virtual const QPointF sample(const QPointF &from); signals: public slots: protected: - QPointF m_ret; }; QT_END_NAMESPACE diff --git a/src/declarative/particles/qsgimageparticle.cpp b/src/declarative/particles/qsgimageparticle.cpp index 007cfb98db63ec3a77de3ddeb17c2304646e53ab..581024d5787b627984f0ed4a5aee05e76e16aa52 100644 --- a/src/declarative/particles/qsgimageparticle.cpp +++ b/src/declarative/particles/qsgimageparticle.cpp @@ -629,11 +629,11 @@ QSGImageParticle::QSGImageParticle(QSGItem* parent) , m_blueVariation(0.0) , m_rotation(0) , m_autoRotation(false) - , m_xVector(0) - , m_yVector(0) , m_rotationVariation(0) , m_rotationSpeed(0) , m_rotationSpeedVariation(0) + , m_xVector(0) + , m_yVector(0) , m_spriteEngine(0) , m_bloat(false) , perfLevel(Unknown) diff --git a/src/declarative/particles/qsgparticleaffector.cpp b/src/declarative/particles/qsgparticleaffector.cpp index f637a17508f3b50941b36029d0b21bea460a06ce..cff3c294443158e50bae29fca6615583984a4563 100644 --- a/src/declarative/particles/qsgparticleaffector.cpp +++ b/src/declarative/particles/qsgparticleaffector.cpp @@ -187,7 +187,7 @@ void QSGParticleAffector::affectSystem(qreal dt) } } -bool QSGParticleAffector::affectParticle(QSGParticleData *d, qreal dt) +bool QSGParticleAffector::affectParticle(QSGParticleData *, qreal ) { return true; } diff --git a/src/declarative/particles/qsgparticleemitter.cpp b/src/declarative/particles/qsgparticleemitter.cpp index d44ad689ee1a155dd554d9fe327d2497bbe573b8..13ab3e61855d80225dbbec0d6b052afec9aac6ce 100644 --- a/src/declarative/particles/qsgparticleemitter.cpp +++ b/src/declarative/particles/qsgparticleemitter.cpp @@ -223,13 +223,13 @@ QSGParticleEmitter::QSGParticleEmitter(QSGItem *parent) : , m_particleSize(16) , m_particleEndSize(-1) , m_particleSizeVariation(0) - , m_maxParticleCount(-1) + , m_startTime(0) , m_burstLeft(0) + , m_maxParticleCount(-1) , m_speed_from_movement(0) , m_reset_last(true) , m_last_timestamp(-1) , m_last_emission(0) - , m_startTime(0) , m_overwrite(true) { diff --git a/src/declarative/particles/qsgpointdirection.cpp b/src/declarative/particles/qsgpointdirection.cpp index dc104c1a8162372721c2b2f81980d636c6cd8d1d..2b83c271a374d2329116f84125e89818591e7fb5 100644 --- a/src/declarative/particles/qsgpointdirection.cpp +++ b/src/declarative/particles/qsgpointdirection.cpp @@ -74,11 +74,12 @@ QSGPointDirection::QSGPointDirection(QObject *parent) : { } -const QPointF &QSGPointDirection::sample(const QPointF &) +const QPointF QSGPointDirection::sample(const QPointF &) { - m_ret.setX(m_x - m_xVariation + rand() / float(RAND_MAX) * m_xVariation * 2); - m_ret.setY(m_y - m_yVariation + rand() / float(RAND_MAX) * m_yVariation * 2); - return m_ret; + QPointF ret; + ret.setX(m_x - m_xVariation + rand() / float(RAND_MAX) * m_xVariation * 2); + ret.setY(m_y - m_yVariation + rand() / float(RAND_MAX) * m_yVariation * 2); + return ret; } QT_END_NAMESPACE diff --git a/src/declarative/particles/qsgpointdirection_p.h b/src/declarative/particles/qsgpointdirection_p.h index ca00824a3ebfa52de9b5895da81703ed99480e14..0a4c17f236352caa72fc4f521207692f8229a418 100644 --- a/src/declarative/particles/qsgpointdirection_p.h +++ b/src/declarative/particles/qsgpointdirection_p.h @@ -58,7 +58,7 @@ class QSGPointDirection : public QSGDirection Q_PROPERTY(qreal yVariation READ yVariation WRITE setYVariation NOTIFY yVariationChanged) public: explicit QSGPointDirection(QObject *parent = 0); - virtual const QPointF &sample(const QPointF &from); + virtual const QPointF sample(const QPointF &from); qreal x() const { return m_x; diff --git a/src/declarative/particles/qsgtargetdirection.cpp b/src/declarative/particles/qsgtargetdirection.cpp index d9a3ce5a74039ba3fc2db51ba386c553133dcedb..79ba433851019fc93c8cdea96dc680ebc5321c5e 100644 --- a/src/declarative/particles/qsgtargetdirection.cpp +++ b/src/declarative/particles/qsgtargetdirection.cpp @@ -94,9 +94,10 @@ QSGTargetDirection::QSGTargetDirection(QObject *parent) : { } -const QPointF &QSGTargetDirection::sample(const QPointF &from) +const QPointF QSGTargetDirection::sample(const QPointF &from) { //###This approach loses interpolating the last position of the target (like we could with the emitter) is it worthwhile? + QPointF ret; qreal targetX; qreal targetY; if (m_targetItem){ @@ -108,9 +109,9 @@ const QPointF &QSGTargetDirection::sample(const QPointF &from) targetX += m_targetItem->x(); targetY += m_targetItem->y(); }else{ - m_ret = parentEmitter->mapFromItem(m_targetItem, QPointF(targetX, targetY)); - targetX = m_ret.x(); - targetY = m_ret.y(); + ret = parentEmitter->mapFromItem(m_targetItem, QPointF(targetX, targetY)); + targetX = ret.x(); + targetY = ret.y(); } }else{ targetX = m_targetX; @@ -122,9 +123,9 @@ const QPointF &QSGTargetDirection::sample(const QPointF &from) qreal mag = m_magnitude + rand()/(float)RAND_MAX * m_magnitudeVariation * 2 - m_magnitudeVariation; if (m_proportionalMagnitude) mag *= sqrt(targetX * targetX + targetY * targetY); - m_ret.setX(mag * cos(theta)); - m_ret.setY(mag * sin(theta)); - return m_ret; + ret.setX(mag * cos(theta)); + ret.setY(mag * sin(theta)); + return ret; } QT_END_NAMESPACE diff --git a/src/declarative/particles/qsgtargetdirection_p.h b/src/declarative/particles/qsgtargetdirection_p.h index 8f4901a57b996a8769f53a093978c464ef19b0da..75c3e08cdba76722920d2942b73b1f8e183b2395 100644 --- a/src/declarative/particles/qsgtargetdirection_p.h +++ b/src/declarative/particles/qsgtargetdirection_p.h @@ -66,7 +66,7 @@ class QSGTargetDirection : public QSGDirection public: explicit QSGTargetDirection(QObject *parent = 0); - virtual const QPointF &sample(const QPointF &from); + virtual const QPointF sample(const QPointF &from); qreal targetX() const { diff --git a/src/declarative/particles/qsgtrailemitter.cpp b/src/declarative/particles/qsgtrailemitter.cpp index 6bccf3ba8c143c5e29ead75fa80a5aeacb43101c..427b587cafc16a8415cbdd86c9d6f0ca52c65afd 100644 --- a/src/declarative/particles/qsgtrailemitter.cpp +++ b/src/declarative/particles/qsgtrailemitter.cpp @@ -196,7 +196,7 @@ void QSGTrailEmitter::emitWindow(int timeStamp) // Note that burst location doesn't get used for follow emitter qreal followT = pt - d->t; qreal followT2 = followT * followT * 0.5; - qreal sizeOffset = d->size/2;//TODO: Current size? As an option + //qreal sizeOffset = d->size/2;//TODO: Current size? As an option //TODO: Set variations //Subtract offset, because PS expects this in emitter coordinates QRectF boundsRect(d->x - offset.x() + d->vx * followT + d->ax * followT2 - m_emitterXVariation/2, @@ -217,7 +217,7 @@ void QSGTrailEmitter::emitWindow(int timeStamp) const QPointF &speed = m_speed->sample(newPos); datum->vx = speed.x() + m_speed_from_movement * d->vx; - datum->vy = speed.y(); + datum->vy = speed.y() + m_speed_from_movement * d->vy; // Particle acceleration