forked from enlightenment/efl
ecore_evas: add logic to allow partial refactoring of backends.
This commit is contained in:
parent
385acef7f9
commit
7b4b7b6696
|
@ -151,8 +151,6 @@ ecore_evas_render_wait(Ecore_Evas *ee)
|
||||||
EAPI Eina_Bool
|
EAPI Eina_Bool
|
||||||
ecore_evas_render(Ecore_Evas *ee)
|
ecore_evas_render(Ecore_Evas *ee)
|
||||||
{
|
{
|
||||||
Eina_List *ll;
|
|
||||||
Ecore_Evas *ee2;
|
|
||||||
Eina_Bool rend = EINA_FALSE;
|
Eina_Bool rend = EINA_FALSE;
|
||||||
|
|
||||||
if (ee->in_async_render)
|
if (ee->in_async_render)
|
||||||
|
@ -165,18 +163,7 @@ ecore_evas_render(Ecore_Evas *ee)
|
||||||
if (!ee->engine.func->fn_prepare(ee))
|
if (!ee->engine.func->fn_prepare(ee))
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
|
rend = ecore_evas_render_prepare(ee);
|
||||||
{
|
|
||||||
if (ee2->engine.func->fn_render)
|
|
||||||
rend |= ee2->engine.func->fn_render(ee2);
|
|
||||||
else
|
|
||||||
rend |= ecore_evas_render(ee2);
|
|
||||||
}
|
|
||||||
// We do not force the child to be sync, so we should wait for them to be done
|
|
||||||
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
|
|
||||||
ecore_evas_render_wait(ee2);
|
|
||||||
|
|
||||||
if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
|
|
||||||
|
|
||||||
ee->in_async_render = 1;
|
ee->in_async_render = 1;
|
||||||
|
|
||||||
|
|
|
@ -479,6 +479,31 @@ Eina_Bool _ecore_evas_cursors_init(Ecore_Evas *ee);
|
||||||
EAPI void ecore_evas_render_wait(Ecore_Evas *ee);
|
EAPI void ecore_evas_render_wait(Ecore_Evas *ee);
|
||||||
EAPI Eina_Bool ecore_evas_render(Ecore_Evas *ee);
|
EAPI Eina_Bool ecore_evas_render(Ecore_Evas *ee);
|
||||||
|
|
||||||
|
static inline Eina_Bool
|
||||||
|
ecore_evas_render_prepare(Ecore_Evas *ee)
|
||||||
|
{
|
||||||
|
Ecore_Evas *ee2;
|
||||||
|
Eina_List *ll;
|
||||||
|
Eina_Bool r = EINA_FALSE;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
|
||||||
|
{
|
||||||
|
if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
|
||||||
|
if (ee2->engine.func->fn_render)
|
||||||
|
r |= ee2->engine.func->fn_render(ee2);
|
||||||
|
else
|
||||||
|
r |= ecore_evas_render(ee2);
|
||||||
|
if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
|
||||||
|
}
|
||||||
|
|
||||||
|
// We do not force the child to be sync, so we should wait for them to be done
|
||||||
|
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
|
||||||
|
if (!ee2->engine.func->fn_render)
|
||||||
|
ecore_evas_render_wait(ee2);
|
||||||
|
|
||||||
|
if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
#undef EAPI
|
#undef EAPI
|
||||||
#define EAPI
|
#define EAPI
|
||||||
|
|
Loading…
Reference in New Issue