aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/particles/qsgparticlesystem_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/particles/qsgparticlesystem_p.h')
-rw-r--r--src/declarative/particles/qsgparticlesystem_p.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/declarative/particles/qsgparticlesystem_p.h b/src/declarative/particles/qsgparticlesystem_p.h
index abb7f52c31..f578c43378 100644
--- a/src/declarative/particles/qsgparticlesystem_p.h
+++ b/src/declarative/particles/qsgparticlesystem_p.h
@@ -218,6 +218,7 @@ class QSGParticleSystem : public QSGItem
{
Q_OBJECT
Q_PROPERTY(bool running READ isRunning WRITE setRunning NOTIFY runningChanged)
+ Q_PROPERTY(bool paused READ isPaused WRITE setPaused NOTIFY pausedChanged)
Q_PROPERTY(int startTime READ startTime WRITE setStartTime NOTIFY startTimeChanged)
Q_PROPERTY(QDeclarativeListProperty<QSGSprite> particleStates READ particleStates)
@@ -247,10 +248,18 @@ signals:
void startTimeChanged(int arg);
+ void pausedChanged(bool arg);
+
public slots:
+ void start(){setRunning(true);}
+ void stop(){setRunning(false);}
+ void restart(){setRunning(false);setRunning(true);}
+ void pause(){setPaused(true);}
+ void resume(){setPaused(false);}
+
void reset();
void setRunning(bool arg);
-
+ void setPaused(bool arg);
void setStartTime(int arg)
{
@@ -264,6 +273,7 @@ public slots:
virtual int duration() const { return -1; }
+
protected:
//This one only once per frame (effectively)
void componentComplete();
@@ -300,12 +310,18 @@ public://###but only really for related class usage. Perhaps we should all be fr
int m_particle_count;
static void stateRedirect(QDeclarativeListProperty<QObject> *prop, QObject *value);//From QSGSprite
+ bool isPaused() const
+ {
+ return m_paused;
+ }
+
private:
void initializeSystem();
+ void initGroups();
bool m_running;
QList<QPointer<QSGParticleEmitter> > m_emitters;
QList<QPointer<QSGParticleAffector> > m_affectors;
- QList<QPointer<QSGParticlePainter> > m_particlePainters;
+ QList<QPointer<QSGParticlePainter> > m_painters;
QList<QPointer<QSGParticlePainter> > m_syncList;
qint64 m_startTime;
int m_nextGroupId;
@@ -319,6 +335,8 @@ private:
friend class QSGParticleSystemAnimation;
void updateCurrentTime( int currentTime );
QSGParticleSystemAnimation* m_animation;
+ bool m_paused;
+ bool m_debugMode;
};
// Internally, this animation drives all the timing. Painters sync up in their updatePaintNode