summaryrefslogtreecommitdiff
path: root/solar.c
diff options
context:
space:
mode:
authorrodri <rgl@antares-labs.eu>2024-07-20 12:10:32 +0000
committerrodri <rgl@antares-labs.eu>2024-07-20 12:10:32 +0000
commit8dca0cb97c2750ee2d2f57c01a5ece8dc5752c35 (patch)
treee6f44d4ac4b31d1803a35d26ff7b534bdbe94651 /solar.c
parent1e2596cb1497bd8e491a3b9cd05062a98256ab5d (diff)
download3dee-8dca0cb97c2750ee2d2f57c01a5ece8dc5752c35.tar.gz
3dee-8dca0cb97c2750ee2d2f57c01a5ece8dc5752c35.tar.bz2
3dee-8dca0cb97c2750ee2d2f57c01a5ece8dc5752c35.zip
improve redraw responsiveness.
Diffstat (limited to 'solar.c')
-rw-r--r--solar.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/solar.c b/solar.c
index b8f1953..12893ed 100644
--- a/solar.c
+++ b/solar.c
@@ -386,7 +386,6 @@ redraw(void)
int i;
lockdisplay(display);
- camera->view->draw(camera->view, screenb);
draw(screen, rectaddpt(viewr, screen->r.min), screenb, nil, ZP);
draw(screen, rectaddpt(cmdbox.r, screen->r.min), display->white, nil, ZP);
for(i = 0; i < cmdbox.ncmds; i++){
@@ -417,6 +416,9 @@ renderproc(void *)
camera->times.Rn[camera->times.cur-1].t0, camera->times.Rn[camera->times.cur-1].t1);
Δt = nsec() - t0;
if(Δt > HZ2MS(60)*1000000ULL){
+ lockdisplay(display);
+ camera->view->draw(camera->view, screenb);
+ unlockdisplay(display);
nbsend(drawc, nil);
t0 += Δt;
}