summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2017-07-11 16:13:46 -0500
committerDerek Foreman <derekf@osg.samsung.com>2017-07-13 11:24:32 -0500
commitd8500022030fc695d02b17492c59d285dac74e87 (patch)
tree2f80ab6eed4f7a01b64bb317c2b1ab2635fecc1d
parent3ac35b18b95905bc18c41a1bc9f285175d9d3998 (diff)
downloadefl-d8500022030fc695d02b17492c59d285dac74e87.tar.gz
ecore_evas: Refactor event catchers to call custom_tick_begin/end
Make the event catcher functions call the custom_tick_begin/end helpers instead of directly calling the engine functions.
-rw-r--r--src/lib/ecore_evas/ecore_evas.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c
index 43560bae0f..a055839ee4 100644
--- a/src/lib/ecore_evas/ecore_evas.c
+++ b/src/lib/ecore_evas/ecore_evas.c
@@ -3158,19 +3158,21 @@ _check_animator_event_catcher_add(void *data, const Efl_Event *event)
{
if (array[i].desc == EFL_EVENT_ANIMATOR_TICK)
{
- if (ee->anim_count++ > 0) return;
- INF("Setting up animator for %p from '%s' with title '%s'.", ee->evas, ee->driver, ee->prop.title);
+ if (!ee->anim_count)
+ INF("Setting up animator for %p from '%s' with title '%s'.", ee->evas, ee->driver, ee->prop.title);
if (ee->engine.func->fn_animator_register &&
ee->engine.func->fn_animator_unregister)
{
// Backend support per window vsync
- ee->engine.func->fn_animator_register(ee);
+ _ecore_evas_custom_tick_begin(ee);
+
if (!_general_tick) _general_tick = ee;
}
else
{
// Backend doesn't support per window vsync, fallback to generic support
+ ee->anim_count++;
ee->anim = ecore_animator_add(_ecore_evas_animator_fallback, ee);
}
@@ -3192,19 +3194,21 @@ _check_animator_event_catcher_del(void *data, const Efl_Event *event)
{
if (array[i].desc == EFL_EVENT_ANIMATOR_TICK)
{
- if ((--ee->anim_count) > 0) return;
+ if (ee->anim_count == 1)
+ INF("Unsetting up animator for %p from '%s' titled '%s'.", ee->evas, ee->driver, ee->prop.title);
- INF("Unsetting up animator for %p from '%s' titled '%s'.", ee->evas, ee->driver, ee->prop.title);
if (ee->engine.func->fn_animator_register &&
ee->engine.func->fn_animator_unregister)
{
// Backend support per window vsync
- ee->engine.func->fn_animator_unregister(ee);
+ _ecore_evas_custom_tick_end(ee);
+
if (_general_tick == ee) _ecore_evas_tick_source_find();
}
else
{
// Backend doesn't support per window vsync, fallback to generic support
+ ee->anim_count--;
ecore_animator_del(ee->anim);
ee->anim = NULL;
}