From c9c45df9289e4d0dbda82cb8eb06c38432d15307 Mon Sep 17 00:00:00 2001 From: Jan Klopper Date: Thu, 31 Mar 2016 16:31:51 +0200 Subject: [PATCH] rework loops to return at least once per fps --- vloed.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vloed.py b/vloed.py index 811c641..60cc290 100755 --- a/vloed.py +++ b/vloed.py @@ -67,18 +67,18 @@ class Canvas(object): lasttime = time.time() changed = False while True: - currenttime = time.time() - changed = self.Draw() or changed - if currenttime - lasttime >= 1 / self.fps: + nextdraw = time.time() + (1 / self.fps) + changed = self.Draw(nextdraw) or changed + if time.time() - lasttime >= 1 / self.fps: pygame.display.flip() changed = False lasttime = time.time() - def Draw(self): + def Draw(self, returntime): """Draws pixels specified in the received packages in the queue""" if self.queue.empty(): return False - while not self.queue.empty(): + while not self.queue.empty() and time.time() < returntime: data = self.queue.get() preamble = struct.unpack_from("