Skip to content

Commit 2d5089c

Browse files
committed
Include frame time in draw()
1 parent c29aa51 commit 2d5089c

File tree

4 files changed

+12
-9
lines changed

4 files changed

+12
-9
lines changed

demosys/effects/effect.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
def bind_target(func):
66
"""Decorator auto binding and releasing the incoming FBO"""
77
def func_wrapper(*args, **kwargs):
8-
args[2].bind()
8+
args[3].bind()
99
func(*args, **kwargs)
10-
args[2].release()
10+
args[3].release()
1111
return func_wrapper
1212

1313

@@ -20,7 +20,7 @@ class Effect:
2020
sys_camera = None
2121

2222
# Methods to override
23-
def draw(self, time, target):
23+
def draw(self, time, frametime, target):
2424
raise NotImplemented
2525

2626
# Utility Stuff

demosys/effects/managers.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def pre_load(self):
1414
def post_load(self):
1515
return True
1616

17-
def draw(self, time, target):
17+
def draw(self, time, frametime, target):
1818
"""Draw efffect(s)"""
1919
pass
2020

@@ -43,8 +43,8 @@ def pre_load(self):
4343
def post_load(self):
4444
return True
4545

46-
def draw(self, time, target):
47-
self.active_effect.draw(time, target)
46+
def draw(self, time, frametime, target):
47+
self.active_effect.draw(time, frametime, target)
4848

4949

5050
class TrackerEffectManager(BaseEffectManger):

demosys/view/controller.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,18 +62,21 @@ def run(manager=None):
6262
TIMER = timers.Timer()
6363
TIMER.start()
6464

65-
frames = 0
65+
frames, ft = 0, 0
66+
prev_time = TIMER.get_time()
6667
while not WINDOW.should_close():
6768
t = TIMER.get_time()
6869
GL.glViewport(0, 0, WINDOW.buffer_width, WINDOW.buffer_height)
6970
GL.glClearColor(0.0, 0.0, 0.0, 0.0)
7071
GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT | GL.GL_STENCIL_BUFFER_BIT)
7172

72-
manager.draw(t, WINDOW_FBO)
73+
manager.draw(t, ft, WINDOW_FBO)
7374

7475
WINDOW.swap_buffers()
7576
WINDOW.poll_events()
7677
frames += 1
78+
ft = t - prev_time
79+
prev_time = t
7780

7881
duration = TIMER.stop()
7982
if duration > 0:

demosys_test/cube/effect.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def init(self):
2121
self.fbo = FBO.create(512, 512, depth=True)
2222

2323
@effect.bind_target
24-
def draw(self, time, target):
24+
def draw(self, time, frametime, target):
2525
GL.glEnable(GL.GL_DEPTH_TEST)
2626
GL.glEnable(GL.GL_CULL_FACE)
2727

0 commit comments

Comments
 (0)