From 6322058d1e3546f64dca5225549cf2e87d8add33 Mon Sep 17 00:00:00 2001 From: michux Date: Wed, 15 Apr 2009 21:34:51 +0000 Subject: timer fix for vnc driver git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@1031 3ae390bd-cb1e-0410-b409-cd5a39f66f1f --- drv_vnc.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drv_vnc.c b/drv_vnc.c index 443cab3..efd788f 100644 --- 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; -- cgit v1.2.3