summaryrefslogtreecommitdiff
path: root/window.py
diff options
context:
space:
mode:
Diffstat (limited to 'window.py')
-rw-r--r--window.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/window.py b/window.py
index 24320b9..1523f85 100644
--- a/window.py
+++ b/window.py
@@ -5,16 +5,15 @@ from time import time
from queue import Queue
from renderer import ImageRenderer, TransitionMix
-from texture import ImageTexture
class PixDisplay:
- def __init__(self):
+ def __init__(self, textures):
self.last_time = 0
self.start_time = 0
self.image_time = 0
self.paused = False
- self.textures = []
+ self.textures = textures
self.current_texture_index = 0
self.renderer = None
self.win_w = 0
@@ -42,16 +41,16 @@ class PixDisplay:
self.frame_time = int(1000 / 60) # In ms
def increment_texture_index(self, increment):
- if len(self.textures) < 2:
- return
-
self.transition_reverse = increment < 0
self.tex_prev = self.textures[self.current_texture_index]
self.current_texture_index = (self.current_texture_index + increment) % len(self.textures)
self.tex = self.textures[self.current_texture_index]
- # Ensure textures are initialized
+ if not self.tex.initialized or not self.tex_prev.initialized:
+ return
+
+ # Ensure textures are initialized for opengl
self.tex_prev.gl_init()
self.tex.gl_init()
@@ -63,10 +62,10 @@ class PixDisplay:
delta_time = current_time - self.last_time
self.last_time = current_time
- if not self.tex:
+ if not self.tex or not self.tex.initialized or not self.tex.id:
self.increment_texture_index(0)
# Draw black window if no textures are available
- if not self.tex:
+ if not self.tex.id:
glClearColor(0.0, 0.0, 0.0, 1.0)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glutSwapBuffers()