aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@theqtcompany.com>2016-03-01 12:39:09 +0100
committerErik Verbruggen <erik.verbruggen@theqtcompany.com>2016-03-04 10:43:23 +0000
commit554566788f585caaef14d929cee6557ad929e06e (patch)
treea1d571e23933a9f66ed49a789a932a666dc0ed89
parent62ecfe55f414d0d04a4344bc6934b4b01408190f (diff)
Particles: inline 4 methods.
And when in the area, remove 3 unused functions. Benchmark: start samegame, click '1 player', quit. Valgrind result: removes/inlines ~90,000 calls. Change-Id: If911b19b46bf163f7fe678623c068f960296f17e Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
-rw-r--r--src/particles/qquickparticleemitter.cpp7
-rw-r--r--src/particles/qquickparticleemitter_p.h7
-rw-r--r--src/particles/qquickparticlesystem.cpp38
-rw-r--r--src/particles/qquickparticlesystem_p.h21
4 files changed, 27 insertions, 46 deletions
diff --git a/src/particles/qquickparticleemitter.cpp b/src/particles/qquickparticleemitter.cpp
index 4d9f834492..5e5c750e0e 100644
--- a/src/particles/qquickparticleemitter.cpp
+++ b/src/particles/qquickparticleemitter.cpp
@@ -319,13 +319,6 @@ void QQuickParticleEmitter::setMaxParticleCount(int arg)
}
}
-int QQuickParticleEmitter::particleCount() const
-{
- if (m_maxParticleCount >= 0)
- return m_maxParticleCount;
- return m_particlesPerSecond*((m_particleDuration+m_particleDurationVariation)/1000.0);
-}
-
void QQuickParticleEmitter::setVelocityFromMovement(qreal t)
{
if (t == m_velocity_from_movement)
diff --git a/src/particles/qquickparticleemitter_p.h b/src/particles/qquickparticleemitter_p.h
index e0036c4007..bb77d132cc 100644
--- a/src/particles/qquickparticleemitter_p.h
+++ b/src/particles/qquickparticleemitter_p.h
@@ -266,7 +266,12 @@ public Q_SLOTS:
virtual void reset();
public:
- int particleCount() const;
+ int particleCount() const
+ {
+ if (m_maxParticleCount >= 0)
+ return m_maxParticleCount;
+ return m_particlesPerSecond*((m_particleDuration+m_particleDurationVariation)/1000.0);
+ }
QQuickParticleExtruder* extruder() const
{
diff --git a/src/particles/qquickparticlesystem.cpp b/src/particles/qquickparticlesystem.cpp
index c0306e9025..e91ab40ffa 100644
--- a/src/particles/qquickparticlesystem.cpp
+++ b/src/particles/qquickparticlesystem.cpp
@@ -199,24 +199,8 @@ DEFINE_BOOL_CONFIG_OPTION(qmlParticlesDebug, QML_PARTICLES_DEBUG)
Discards all currently existing particles.
*/
-const qreal EPSILON = 0.001;
-//Utility functions for when within 1ms is close enough
-bool timeEqualOrGreater(qreal a, qreal b)
-{
- return (a+EPSILON >= b);
-}
-
-bool timeLess(qreal a, qreal b)
-{
- return (a-EPSILON < b);
-}
-bool timeEqual(qreal a, qreal b)
-{
- return (a+EPSILON > b) && (a-EPSILON < b);
-}
-
-int roundedTime(qreal a)
+static inline int roundedTime(qreal a)
{// in ms
return (int)qRound(a*1000.0);
}
@@ -344,11 +328,6 @@ QQuickParticleGroupData::~QQuickParticleGroupData()
delete d;
}
-int QQuickParticleGroupData::size()
-{
- return m_size;
-}
-
QString QQuickParticleGroupData::name()//### Worth caching as well?
{
return m_system->groupIds.key(index);
@@ -652,21 +631,6 @@ void QQuickParticleData::debugDump()
<< "Time: " << t << "," <<lifeSpan << ";" << (system->timeInt / 1000.0) ;
}
-bool QQuickParticleData::stillAlive()
-{
- if (!system)
- return false;
- return (t + lifeSpan - EPSILON) > ((qreal)system->timeInt/1000.0);
-}
-
-bool QQuickParticleData::alive()
-{
- if (!system)
- return false;
- qreal st = ((qreal)system->timeInt/1000.0);
- return (t + EPSILON) < st && (t + lifeSpan - EPSILON) > st;
-}
-
float QQuickParticleData::curSize()
{
if (!system || !lifeSpan)
diff --git a/src/particles/qquickparticlesystem_p.h b/src/particles/qquickparticlesystem_p.h
index 7805f87094..9ddbb2ff38 100644
--- a/src/particles/qquickparticlesystem_p.h
+++ b/src/particles/qquickparticlesystem_p.h
@@ -114,7 +114,9 @@ public:
QQuickParticleGroupData(const QString &name, QQuickParticleSystem* sys);
~QQuickParticleGroupData();
- int size();
+ int size()
+ { return m_size; }
+
QString name();
void setSize(int newSize);
@@ -248,6 +250,9 @@ public:
void clone(const QQuickParticleData& other);//Not =, leaves meta-data like index
QQmlV4Handle v4Value();
void extendLife(float time);
+
+ static inline Q_DECL_CONSTEXPR qreal EPSILON() Q_DECL_NOTHROW { return 0.001; }
+
private:
QQuickV4ParticleData* v8Datum;
};
@@ -396,6 +401,20 @@ private:
QQuickParticleSystem* m_system;
};
+inline bool QQuickParticleData::stillAlive()
+{
+ if (!system)
+ return false;
+ return (t + lifeSpan - EPSILON()) > ((qreal)system->timeInt/1000.0);
+}
+
+inline bool QQuickParticleData::alive()
+{
+ if (!system)
+ return false;
+ qreal st = ((qreal)system->timeInt/1000.0);
+ return (t + EPSILON()) < st && (t + lifeSpan - EPSILON()) > st;
+}
QT_END_NAMESPACE