Ecore: Add AnimatorTimeline.
This commit is contained in:
parent
aa96c353c3
commit
ba9f729094
|
@ -72,6 +72,33 @@ cdef class Animator(Eo):
|
|||
"Alias for delete()."
|
||||
self.delete()
|
||||
|
||||
cdef Eina_Bool _ecore_timeline_cb(void *data, double pos) with gil:
|
||||
assert data != NULL
|
||||
cdef:
|
||||
AnimatorTimeline obj = <AnimatorTimeline>data
|
||||
bint ret = False
|
||||
|
||||
try:
|
||||
ret = obj.func(pos, *obj.args, **obj.kargs)
|
||||
except:
|
||||
traceback.print_exc()
|
||||
|
||||
if not ret:
|
||||
obj.delete()
|
||||
|
||||
return ret
|
||||
|
||||
cdef class AnimatorTimeline(Animator):
|
||||
def __init__(self, func, double runtime, *args, **kargs):
|
||||
if not callable(func):
|
||||
raise TypeError("Parameter 'func' must be callable")
|
||||
self.func = func
|
||||
self.args = args
|
||||
self.kargs = kargs
|
||||
self._set_obj(ecore_animator_timeline_add(runtime, _ecore_timeline_cb, <void *>self))
|
||||
|
||||
cpdef bint _task_exec(self) except *:
|
||||
return self.func(*self.args, **self.kargs)
|
||||
|
||||
def animator_add(func, *args, **kargs):
|
||||
"""
|
||||
|
|
|
@ -84,6 +84,7 @@ cdef extern from "Ecore.h":
|
|||
ctypedef Eina_Bool (*Ecore_Event_Handler_Cb)(void *data, int type, void *event)
|
||||
ctypedef void (*Ecore_End_Cb)(void *user_data, void *func_data)
|
||||
ctypedef void (*Ecore_Exe_Cb)(void *data, const_Ecore_Exe *exe)
|
||||
ctypedef Eina_Bool (*Ecore_Timeline_Cb)(void *data, double pos)
|
||||
|
||||
####################################################################
|
||||
# Functions
|
||||
|
@ -102,6 +103,7 @@ cdef extern from "Ecore.h":
|
|||
double ecore_loop_time_get()
|
||||
|
||||
Ecore_Animator *ecore_animator_add(Ecore_Task_Cb func, void *data)
|
||||
Ecore_Animator *ecore_animator_timeline_add(double runtime, Ecore_Timeline_Cb func, void *data)
|
||||
void *ecore_animator_del(Ecore_Animator *animator)
|
||||
void ecore_animator_frametime_set(double frametime)
|
||||
double ecore_animator_frametime_get()
|
||||
|
|
Loading…
Reference in New Issue