Also change QSGDirection::sample to pass by value.
Change-Id: I878649158b78da22afdf77b5f3ce3263ce1070cd
Reviewed-on: http://codereview.qt-project.org/4497
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
}
-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
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;
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)
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;
};
QSGNode *QSGCustomParticle::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
{
+ Q_UNUSED(oldNode);
if (m_pleaseReset){
//delete m_material;//Shader effect item doesn't regen material?
{
}
-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
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
, 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)
}
}
-bool QSGParticleAffector::affectParticle(QSGParticleData *d, qreal dt)
+bool QSGParticleAffector::affectParticle(QSGParticleData *, qreal )
{
return true;
}
, 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)
{
{
}
-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
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;
{
}
-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){
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;
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
public:
explicit QSGTargetDirection(QObject *parent = 0);
- virtual const QPointF &sample(const QPointF &from);
+ virtual const QPointF sample(const QPointF &from);
qreal targetX() const
{
// 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,
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