From 09d821e2349ba3ec49250ae345aeb3f7db42d64c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Tue, 17 Oct 2017 09:16:07 -0700 Subject: [PATCH] Fixed particle reset. --- examples/32-particles/particles.cpp | 1 + examples/common/ps/particle_system.cpp | 12 +++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/examples/32-particles/particles.cpp b/examples/32-particles/particles.cpp index 37e22da97..c89e23f32 100644 --- a/examples/32-particles/particles.cpp +++ b/examples/32-particles/particles.cpp @@ -281,6 +281,7 @@ public: { m_emitter[ii].create(); m_emitter[ii].m_uniforms.m_handle = sprite; + m_emitter[ii].update(); } imguiCreate(); diff --git a/examples/common/ps/particle_system.cpp b/examples/common/ps/particle_system.cpp index 57b195d27..7ad93331a 100644 --- a/examples/common/ps/particle_system.cpp +++ b/examples/common/ps/particle_system.cpp @@ -187,8 +187,12 @@ namespace ps void reset() { + m_dt = 0.0f; + m_uniforms.reset(); m_num = 0; bx::memSet(&m_aabb, 0, sizeof(Aabb) ); + + m_rng.reset(); } void update(float _dt) @@ -684,13 +688,11 @@ namespace ps void Emitter::create(EmitterShape::Enum _shape, EmitterDirection::Enum _direction, uint32_t _maxParticles) { - m_dt = 0.0f; - m_uniforms.reset(); + reset(); + m_shape = _shape; m_direction = _direction; - - m_num = 0; - m_max = _maxParticles; + m_max = _maxParticles; m_particles = (Particle*)BX_ALLOC(s_ctx.m_allocator, m_max*sizeof(Particle) ); }