Fix crash on particles instance invalidated

This commit is contained in:
Wojtek Figat
2022-02-23 22:41:26 +01:00
parent 6b84773190
commit 58de04ccd6

View File

@@ -1025,9 +1025,11 @@ void UpdateGPU(RenderTask* task, GPUContext* context)
if (track.Type != ParticleSystem::Track::Types::Emitter || track.Disabled)
continue;
const uint32 emitterIndex = track.AsEmitter.Index;
auto emitter = particleSystem->Emitters[emitterIndex].Get();
auto& data = instance.Emitters[emitterIndex];
if (!emitter || !emitter->IsLoaded() || !data.Buffer || emitter->SimulationMode != ParticlesSimulationMode::GPU)
ParticleEmitter* emitter = particleSystem->Emitters[emitterIndex].Get();
if (!emitter || !emitter->IsLoaded() || emitter->SimulationMode != ParticlesSimulationMode::GPU || instance.Emitters.Count() <= emitterIndex)
continue;
ParticleEmitterInstance& data = instance.Emitters[emitterIndex];
if (!data.Buffer)
continue;
ASSERT(emitter->Capacity != 0 && emitter->Graph.Layout.Size != 0);