diff options
Diffstat (limited to 'src/libjin/Graphics/particles')
-rw-r--r-- | src/libjin/Graphics/particles/je_particle.cpp | 14 | ||||
-rw-r--r-- | src/libjin/Graphics/particles/je_particle.h | 21 | ||||
-rw-r--r-- | src/libjin/Graphics/particles/je_particle_pool.cpp | 0 | ||||
-rw-r--r-- | src/libjin/Graphics/particles/je_particle_pool.h | 36 | ||||
-rw-r--r-- | src/libjin/Graphics/particles/je_particle_system.h | 5 |
5 files changed, 40 insertions, 36 deletions
diff --git a/src/libjin/Graphics/particles/je_particle.cpp b/src/libjin/Graphics/particles/je_particle.cpp index e69de29..9179093 100644 --- a/src/libjin/Graphics/particles/je_particle.cpp +++ b/src/libjin/Graphics/particles/je_particle.cpp @@ -0,0 +1,14 @@ +#include "je_particle.h" + +namespace JinEngine +{ + namespace Graphics + { + namespace Particles + { + + + + } + } +}
\ No newline at end of file diff --git a/src/libjin/Graphics/particles/je_particle.h b/src/libjin/Graphics/particles/je_particle.h index 3dd480e..73803e8 100644 --- a/src/libjin/Graphics/particles/je_particle.h +++ b/src/libjin/Graphics/particles/je_particle.h @@ -2,6 +2,7 @@ #define __JE_PARTICLE_H__ #include "../../math/je_vector2.hpp" +#include "../je_color.h" namespace JinEngine { @@ -12,6 +13,9 @@ namespace JinEngine class ParticleEmitter; + /// + /// + /// struct LifeTimeDef { bool enableRandom = false; @@ -25,11 +29,17 @@ namespace JinEngine } life; }; + /// + /// + /// struct LinearAccelaration { }; + /// + /// + /// struct SpeedOverTimeDef { bool enable = false; @@ -100,7 +110,16 @@ namespace JinEngine /// struct Particle { - Particle(const ParticleDef& particleDef); + /// + /// Default constructor. + /// + Particle(); + + /// + /// Initialize with given definition. + /// + void initialize(const ParticleDef& particleDef); + /// /// Whole life time. /// diff --git a/src/libjin/Graphics/particles/je_particle_pool.cpp b/src/libjin/Graphics/particles/je_particle_pool.cpp deleted file mode 100644 index e69de29..0000000 --- a/src/libjin/Graphics/particles/je_particle_pool.cpp +++ /dev/null diff --git a/src/libjin/Graphics/particles/je_particle_pool.h b/src/libjin/Graphics/particles/je_particle_pool.h index 6bd41e0..46cd73a 100644 --- a/src/libjin/Graphics/particles/je_particle_pool.h +++ b/src/libjin/Graphics/particles/je_particle_pool.h @@ -1,7 +1,7 @@ #ifndef __JE_PARTICLE_BATCH_H__ #define __JE_PARTICLE_BATCH_H__ -#include <list> +#include "../../common/je_pool.hpp" #include "je_particle.h" @@ -15,39 +15,7 @@ namespace JinEngine /// /// Particle pool for reducing memory fragmentation. /// - class ParticlePool - { - public: - - /// - /// Particle pool constructor. - /// - /// @param count Max count of particles. - /// - ParticlePool(uint count); - - /// - /// Particle pool destructor. - /// - ~ParticlePool(); - - /// - /// Claim a particle if available. - /// - Particle* claim(); - - /// - /// Recycle particle if the particle is no more alive. - /// - void recycle(Particle* particle); - - private: - /// - /// All particles include available and inavailable particles. - /// - std::list<Particle> particles; - - }; + typedef Pool<Particle> ParticlePool; } // namespace Particles } // namespace Graphics diff --git a/src/libjin/Graphics/particles/je_particle_system.h b/src/libjin/Graphics/particles/je_particle_system.h index 32123a6..fa050f7 100644 --- a/src/libjin/Graphics/particles/je_particle_system.h +++ b/src/libjin/Graphics/particles/je_particle_system.h @@ -63,7 +63,10 @@ namespace JinEngine /// /// Release particle and make it available in particle pool. /// - void releaseParticle(); + void releaseParticle() + { + Particle*p = mParticlePool.New(); + } private: // Disable default constructor. |