]> git.webhop.me Git - lcd4linux.git/commitdiff
timer fix for vnc driver
authormichux <michux@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 15 Apr 2009 21:34:51 +0000 (21:34 +0000)
committermichux <michux@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>
Wed, 15 Apr 2009 21:34:51 +0000 (21:34 +0000)
git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@1031 3ae390bd-cb1e-0410-b409-cd5a39f66f1f

drv_vnc.c

index 443cab377f5b04829535240ae1218c0bf26518f0..efd788f2729a119c977b52915b530d92976c0a6d 100644 (file)
--- a/drv_vnc.c
+++ b/drv_vnc.c
@@ -350,8 +350,18 @@ static void drv_vnc_blit_it(const int row, const int col, const int height, cons
        gettimeofday(&blittime, NULL);
        int time_since_start =
            (blittime.tv_sec - startDriver.tv_sec) * 1000 + (blittime.tv_usec - startDriver.tv_usec) / 1000;
+
+       /* if time changed since start of lcd4linux */
+       if (time_since_start < 0) {
+           gettimeofday(&startDriver, NULL);
+           time_since_start =
+               (blittime.tv_sec - startDriver.tv_sec) * 1000 + (blittime.tv_usec - startDriver.tv_usec) / 1000;
+           if (time_since_start == 0)
+               time_since_start = 1;
+       }
+       //info("time :%d, frames: %d, sleep: %d", time_since_start, frames, sleep);
+
        int fps = (int) (1000 * frames / time_since_start);
-       //info("time :%d, frames: %d, fps: %d, sleep: %d", time_since_start, frames, fps, sleep);
 
        if (fps > maxfps) {
            sleep += SLEEP_STEPS;