ref: 0a0395453120ef14e23e56095e09520aeb3af595
parent: 380057f08bc96785ec1fc7801e457ff3d08e91c0
author: rodri <rgl@antares-labs.eu>
date: Sun Jun 29 07:36:02 EDT 2025
med,solar,vis: better render loops
--- a/med.c
+++ b/med.c
@@ -501,6 +501,10 @@
nbsend(drawc, nil);
t0 = nanosec();
+ }else{+ Δt = HZ2NS(60) - Δt;
+ if(Δt >= 1000000ULL)
+ sleep(Δt/1000000ULL);
}
}
}
--- a/solar.c
+++ b/solar.c
@@ -584,6 +584,10 @@
unlockdisplay(display);
nbsend(drawc, nil);
t0 = nanosec();
+ }else{+ Δt = HZ2NS(60) - Δt;
+ if(Δt >= 1000000ULL)
+ sleep(Δt/1000000ULL);
}
}
}
--- a/vis.c
+++ b/vis.c
@@ -289,8 +289,9 @@
prim->mtl = mtl;
}
- time = t0 = nanosec();
+ t0 = nanosec();
for(;;){+ time = nanosec();
setuniform(shader, "time", VANumber, &time);
qlock(&scenelk);
@@ -312,9 +313,12 @@
if((mtl->diffusemap->image = readmemimage(fd)) == nil)
sysfatal("readmemimage: %r");}
- time = t0 = nanosec();
- }else
- time = t0 + Δt;
+ t0 = nanosec();
+ }else if(!doprof){+ Δt = HZ2NS(60) - Δt;
+ if(Δt >= 1000000ULL)
+ sleep(Δt/1000000ULL);
+ }
}
}
--
⑨