ecore_evas: skip rendering evas and making animator tick

Summary:
Some ecore_evas such as ecore_evas_extn_plug doesn't have evas.

ecore_evas_extn_plug seems to be Ecore_Evas, but actually it is Evas_Object_Image.
ecore_evas_extn_plug makes new ecore evas, but it only exists to communicate with ecore_evas_extn_socket.
newly ecore evas  only open and close file(ecore_evas_extn_socket). so it doesn't have evas.

```
EAPI Evas_Object *
ecore_evas_extn_plug_new_internal(Ecore_Evas *ee_target)
{
...
   ee = calloc(1, sizeof(Ecore_Evas));
...
   o = evas_object_image_filled_add(ee_target->evas);
...
  return o;
}
```

Reviewers: zmike, Hermet, woohyun, raster, devilhorns

Reviewed By: zmike

Subscribers: cedric, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6504
This commit is contained in:
Hosang Kim 2018-07-05 15:15:55 -04:00 committed by Mike Blumenkrantz
parent 259ba514ef
commit 1b2408d5f7
1 changed files with 8 additions and 3 deletions

View File

@ -149,6 +149,8 @@ ecore_evas_render(Ecore_Evas *ee)
{
Eina_Bool rend = EINA_FALSE;
if (!ee->evas) return EINA_FALSE;
if (ee->in_async_render)
{
DBG("ee=%p is rendering, skip.", ee);
@ -3048,7 +3050,8 @@ ecore_evas_animator_tick(Ecore_Evas *ee, Eina_Rectangle *viewport, double loop_t
// FIXME: We do not support partial animator in the subcanvas
EINA_LIST_FOREACH(ee->sub_ecore_evas, l, subee)
{
ecore_evas_animator_tick(subee, NULL, loop_time);
if (subee->evas)
ecore_evas_animator_tick(subee, NULL, loop_time);
}
// We are a source of sync for general animator.
@ -3274,10 +3277,12 @@ _ecore_evas_register(Ecore_Evas *ee)
EAPI void
_ecore_evas_subregister(Ecore_Evas *ee_target, Ecore_Evas *ee)
{
_ecore_evas_register_animators(ee);
ee_target->sub_ecore_evas = eina_list_append(ee_target->sub_ecore_evas, ee);
if (!ee->evas) return;
_ecore_evas_register_animators(ee);
if (!ee->engine.func->fn_render)
evas_event_callback_priority_add(ee->evas, EVAS_CALLBACK_RENDER_POST, EVAS_CALLBACK_PRIORITY_AFTER,
_evas_evas_buffer_rendered, ee);