From e7036d21d5e5c87702724283f55a77d07344f4fe Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Sat, 10 May 2025 19:47:31 -0500 Subject: add flaskapi --- window.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'window.py') diff --git a/window.py b/window.py index 8e04225..24320b9 100644 --- a/window.py +++ b/window.py @@ -2,6 +2,7 @@ from OpenGL.GL import * from OpenGL.GLUT import * from OpenGL.GLU import * from time import time +from queue import Queue from renderer import ImageRenderer, TransitionMix from texture import ImageTexture @@ -12,6 +13,7 @@ class PixDisplay: self.last_time = 0 self.start_time = 0 self.image_time = 0 + self.paused = False self.textures = [] self.current_texture_index = 0 self.renderer = None @@ -24,10 +26,11 @@ class PixDisplay: self.auto_transition = True self.transition_reverse = False + self.text_prev = None self.tex = None - self.text_next = None self._force_redraw = False + self.queue = Queue() @property def max_framerate(self): @@ -69,8 +72,14 @@ class PixDisplay: glutSwapBuffers() return + # Run queue events + while not self.queue.empty(): + f = self.queue.get() # Get the task and its data + f() + # Progress image time - self.image_time += delta_time + if not self.paused: + self.image_time += delta_time # Get window size old_win_w, old_win_h = self.win_w, self.win_h @@ -102,16 +111,16 @@ class PixDisplay: glutPostRedisplay() glutTimerFunc(self.frame_time, self.timer, 0) # Schedule next frame - def skip(self, increment): + def seek(self, increment): self.auto_transition = False self.increment_texture_index(increment) self.image_time = self.image_duration def handle_special_key(self, key, x, y): if key == GLUT_KEY_LEFT: - self.skip(-1) + self.seek(-1) elif key == GLUT_KEY_RIGHT: - self.skip(1) + self.seek(1) def handle_visibility_change(self, state): if state == GLUT_VISIBLE: -- cgit v1.2.3