diff options
author | rodri <rgl@antares-labs.eu> | 2020-06-06 17:35:24 +0000 |
---|---|---|
committer | rodri <rgl@antares-labs.eu> | 2020-06-06 17:35:24 +0000 |
commit | 859280ae54b396948b63b5aee6db5ef92748cda0 (patch) | |
tree | 0736279ba8520b66a1343e7cfd71b06f24563669 /main.c | |
parent | 9bc2a9ca1cda79005441c3b944d15598cba6892b (diff) | |
download | st-859280ae54b396948b63b5aee6db5ef92748cda0.tar.gz st-859280ae54b396948b63b5aee6db5ef92748cda0.tar.bz2 st-859280ae54b396948b63b5aee6db5ef92748cda0.zip |
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 27 |
1 files changed, 22 insertions, 5 deletions
@@ -116,15 +116,32 @@ kbdproc(void*) } } +enum{ Frameslice = 1000/30 }; void drawproc(void *arg) { Channel *c; - - c = arg; - for(;;){ - send(c, nil); - sleep(FPS2MS(60)); + vlong t0, t, dt, tt; + int fps; + + c = arg; + fps = 0; + tt = 0; + t0 = nsec(); + for(;;){ + send(c, nil); + t = nsec(); + dt = t-t0; + fps++; + tt += dt; + if(tt >= 1e9){ + fprint(2, "fps %d\n", fps); + tt = fps = 0; + } + dt /= 1e6; + if(dt < Frameslice) + sleep(Frameslice - dt); + t0 = t; } } |