ref: 58984162438c40552bdbf3688fa65058c40c7d1b
parent: 6c3772e7d7e63eede6ffd8a5d289e804ffd3f5e1
author: rodri <rgl@antares-labs.eu>
date: Tue Apr 8 12:58:20 EDT 2025
avoid overdrawing in the renderproc
--- a/med.c
+++ b/med.c
@@ -456,7 +456,7 @@
shootcamera(compass.cam, getshader("ident"));
Δt = nanosec() - t0;
- if(Δt > HZ2MS(60)*1000000ULL){
+ if(Δt > HZ2NS(60)){
lockdisplay(display);
draw(screenb, screenb->r, bg, nil, ZP);
cam->view->draw(cam->view, screenb, nil);
@@ -464,7 +464,7 @@
unlockdisplay(display);
nbsend(drawc, nil);
- t0 += Δt;
+ t0 = nanosec();
}
}
}
--- a/solar.c
+++ b/solar.c
@@ -559,13 +559,13 @@
for(;;){
shootcamera(camera, &shader);
Δt = nanosec() - t0;
- if(Δt > HZ2MS(60)*1000000ULL){
+ if(Δt > HZ2NS(60)){
lockdisplay(display);
draw(screenb, screenb->r, bg, nil, ZP);
camera->view->draw(camera->view, screenb, nil);
unlockdisplay(display);
nbsend(drawc, nil);
- t0 += Δt;
+ t0 = nanosec();
}
}
}
--- a/vis.c
+++ b/vis.c
@@ -240,7 +240,7 @@
shootcamera(maincam, shader);
Δt = nanosec() - t0;
- if(Δt > HZ2MS(60)*1000000ULL){
+ if(Δt > HZ2NS(60)){
lockdisplay(display);
draw(screenb, screenb->r, clr, nil, ZP);
maincam->view->draw(maincam->view, screenb, curraster);
@@ -247,7 +247,6 @@
unlockdisplay(display);
nbsend(drawc, nil);
- t0 += Δt;
if(inception){
freememimage(mtl->diffusemap->image);
@@ -255,6 +254,7 @@
if((mtl->diffusemap->image = readmemimage(fd)) == nil)
sysfatal("readmemimage: %r");
}
+ t0 = nanosec();
}
}
}