diff options
| author | Tim Keller <tjkeller.xyz> | 2025-05-10 19:47:31 -0500 |
|---|---|---|
| committer | Tim Keller <tjkeller.xyz> | 2025-05-10 19:47:31 -0500 |
| commit | e7036d21d5e5c87702724283f55a77d07344f4fe (patch) | |
| tree | 45d0801042b38ca595c32e7c4a0dd42b96780ede /window.py | |
| parent | fc570fc38b450b90a2c8da05e5619f19ba8e983d (diff) | |
| download | immich-frame-e7036d21d5e5c87702724283f55a77d07344f4fe.tar.xz immich-frame-e7036d21d5e5c87702724283f55a77d07344f4fe.zip | |
add flaskapi
Diffstat (limited to 'window.py')
| -rw-r--r-- | window.py | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -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: |
