From dd3ca084640f794c59427a507686bbd9bec1ed6b Mon Sep 17 00:00:00 2001 From: Nic Gaffney Date: Tue, 14 Oct 2025 22:23:59 -0500 Subject: Started work on emscripten, fixed single frame leak caused by infinite splits --- src/particle.zig | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/particle.zig') diff --git a/src/particle.zig b/src/particle.zig index 14748dc..03de9ae 100644 --- a/src/particle.zig +++ b/src/particle.zig @@ -1,3 +1,4 @@ +const builtin = @import("builtin"); const cfg = @import("config.zig"); const std = @import("std"); const rl = @import("raylib"); @@ -24,12 +25,18 @@ pub fn initParticles(allocator: std.mem.Allocator, amnt: u32) !std.array_list.Ma pub fn updateVelocities( particles: std.array_list.Managed(particle), qtree: quad.Quad(particle, cfg.quadSplitLimit), - threadidx: u64, + threadidx: usize, particlesInRange: *std.ArrayList(particle), ) !void { const rules = cfg.rules; var i = threadidx; - while (i < particles.items.len) : (i += cfg.numThreads) { + while (i < particles.items.len) : (i += iterval: { + if (builtin.target.os.tag == .emscripten) + break :iterval 1 + else + break :iterval cfg.numThreads; + }) { + var p: *particle = &(particles.items[i]); defer particlesInRange.clearRetainingCapacity(); const radius = cfg.radius[p.colorId]; -- cgit v1.2.3