protected virtual void Draw(DrawEvent ev, DrawTransformation transform) { TimeSinceDraw.Restart(); float deltaTime = (float)deltaWatch.Elapsed.TotalSeconds; deltaWatch.Restart(); if (deltaTime > 1f) { return; } using (var ac = BlendMode.Activate()) { for (int i = 0; i < ParticleCount; i++) { particles[i].Age += deltaTime; if (particles[i].Age >= particles[i].Life) { particles[i] = particles[ParticleCount - 1]; ParticleCount--; if (i >= ParticleCount) { break; } } else { UpdateAndDraw(particles[i], deltaTime, ev.RenderTarget); } } } }