From 253473c9f0cc96d90375ef440818b71dfed49869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tur=C3=A1nszki=20J=C3=A1nos?= Date: Sun, 19 Nov 2023 08:14:57 +0100 Subject: [PATCH] emitter: zero delta time fix --- WickedEngine/wiEmittedParticle.cpp | 5 +++-- WickedEngine/wiEmittedParticle.h | 1 + WickedEngine/wiVersion.cpp | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/WickedEngine/wiEmittedParticle.cpp b/WickedEngine/wiEmittedParticle.cpp index 550a3ad0a..7dfd6b339 100644 --- a/WickedEngine/wiEmittedParticle.cpp +++ b/WickedEngine/wiEmittedParticle.cpp @@ -328,6 +328,7 @@ namespace wi void EmittedParticleSystem::UpdateCPU(const TransformComponent& transform, float dt) { + this->dt = dt; CreateSelfBuffers(); if (IsPaused() || dt == 0) @@ -374,7 +375,7 @@ namespace wi GraphicsDevice* device = wi::graphics::GetDevice(); device->EventBegin("UpdateEmittedParticles", cmd); - if (!IsPaused()) + if (!IsPaused() && dt > 0) { EmittedParticleCB cb; cb.xEmitterTransform.Create(worldMatrix); @@ -698,7 +699,7 @@ namespace wi wi::gpusortlib::Sort(MAX_PARTICLES, distanceBuffer, counterBuffer, PARTICLECOUNTER_OFFSET_CULLEDCOUNT, culledIndirectionBuffer, cmd); } - if (!IsPaused()) + if (!IsPaused() && dt > 0) { // finish updating, update draw argument buffer: device->EventBegin("FinishUpdate", cmd); diff --git a/WickedEngine/wiEmittedParticle.h b/WickedEngine/wiEmittedParticle.h index 94c708b24..73d6a0551 100644 --- a/WickedEngine/wiEmittedParticle.h +++ b/WickedEngine/wiEmittedParticle.h @@ -60,6 +60,7 @@ namespace wi float emit = 0.0f; int burst = 0; + float dt = 0; uint32_t MAX_PARTICLES = 1000; diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index fd5e73c57..fe8ce5432 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -9,7 +9,7 @@ namespace wi::version // minor features, major updates, breaking compatibility changes const int minor = 71; // minor bug fixes, alterations, refactors, updates - const int revision = 347; + const int revision = 348; const std::string version_string = std::to_string(major) + "." + std::to_string(minor) + "." + std::to_string(revision);