aboutsummaryrefslogtreecommitdiffstats
path: root/src/particles/qquickpointattractor.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@digia.com>2016-03-08 10:13:15 +0100
committerErik Verbruggen <erik.verbruggen@theqtcompany.com>2016-03-08 09:37:21 +0000
commit350a74ec69b535df07ad7ca45415090749c75293 (patch)
tree911d3c17b0af4f733f5449c6796014cfc9ac0d04 /src/particles/qquickpointattractor.cpp
parent922e9d6b0c7ae1acdae4986e8000ad9a693b7469 (diff)
Particles: Shrink QQuickParticleData by 2 pointers.
Samegame creates about 23,000 particles, so this reduces the memory by ~180kb on 32bit, so ~360kb on 64bit. Change-Id: I0581524ab232b474c5d43abeabd7ebf6174e740f Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Diffstat (limited to 'src/particles/qquickpointattractor.cpp')
-rw-r--r--src/particles/qquickpointattractor.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/particles/qquickpointattractor.cpp b/src/particles/qquickpointattractor.cpp
index 8b3cfbd1ff..779b2915f0 100644
--- a/src/particles/qquickpointattractor.cpp
+++ b/src/particles/qquickpointattractor.cpp
@@ -115,8 +115,8 @@ bool QQuickAttractorAffector::affectParticle(QQuickParticleData *d, qreal dt)
{
if (m_strength == 0.0)
return false;
- qreal dx = m_x+m_offset.x() - d->curX();
- qreal dy = m_y+m_offset.y() - d->curY();
+ qreal dx = m_x+m_offset.x() - d->curX(m_system);
+ qreal dy = m_y+m_offset.y() - d->curY(m_system);
qreal r = std::sqrt((dx*dx) + (dy*dy));
qreal theta = std::atan2(dy,dx);
qreal ds = 0;
@@ -146,15 +146,15 @@ bool QQuickAttractorAffector::affectParticle(QQuickParticleData *d, qreal dt)
d->y = (d->y + dy);
break;
case Acceleration:
- d->setInstantaneousAX(d->ax + dx);
- d->setInstantaneousAY(d->ay + dy);
+ d->setInstantaneousAX(d->ax + dx, m_system);
+ d->setInstantaneousAY(d->ay + dy, m_system);
break;
case Velocity: //also default
default:
- vx = d->curVX();
- vy = d->curVY();
- d->setInstantaneousVX(vx + dx);
- d->setInstantaneousVY(vy + dy);
+ vx = d->curVX(m_system);
+ vy = d->curVY(m_system);
+ d->setInstantaneousVX(vx + dx, m_system);
+ d->setInstantaneousVY(vy + dy, m_system);
}
return true;