* ecore_evas: Cleanup buffer render user. Why isn't this common too ?

SVN revision: 45114
This commit is contained in:
Cedric BAIL 2010-01-14 17:52:29 +00:00
parent 99a429aab7
commit dd1abb5bae
8 changed files with 25 additions and 19 deletions

View File

@ -88,16 +88,17 @@ _ecore_evas_buffer_shutdown(void)
return _ecore_evas_init_count;
}
void
int
_ecore_evas_buffer_render(Ecore_Evas *ee)
{
Eina_List *updates, *l, *ll;
Ecore_Evas *ee2;
int rend = 0;
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
{
if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
_ecore_evas_buffer_render(ee2);
rend |= _ecore_evas_buffer_render(ee2);
if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
}
if (ee->engine.buffer.image)
@ -123,6 +124,8 @@ _ecore_evas_buffer_render(Ecore_Evas *ee)
evas_render_updates_free(updates);
_ecore_evas_idle_timeout_update(ee);
}
return updates ? 1 : rend;
}
static void

View File

@ -23,17 +23,18 @@ static Ecore_Event_Handler *ecore_evas_event_handlers[13];
static Eina_Hash *ecore_evases_hash = NULL;
static void
static int
_ecore_evas_directfb_render(Ecore_Evas *ee)
{
Eina_List *updates, *ll;
Ecore_Evas *ee2;
int rend = 0;
#ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
{
if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
_ecore_evas_buffer_render(ee2);
rend |= _ecore_evas_buffer_render(ee2);
if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
}
#endif
@ -45,6 +46,8 @@ _ecore_evas_directfb_render(Ecore_Evas *ee)
_ecore_evas_idle_timeout_update(ee);
}
if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
return updates ? 1 : rend;
}
static char *

View File

@ -194,11 +194,11 @@ static int
_ecore_evas_fb_render(Ecore_Evas *ee)
{
int rend = 0;
if (ee->visible)
{
Eina_List *updates;
#ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
Eina_List *ll;
Ecore_Evas *ee2;
@ -208,7 +208,7 @@ _ecore_evas_fb_render(Ecore_Evas *ee)
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
{
if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
_ecore_evas_buffer_render(ee2);
rend |= _ecore_evas_buffer_render(ee2);
if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
}
#endif

View File

@ -346,7 +346,7 @@ int _ecore_evas_fb_shutdown(void);
#endif
#ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
int _ecore_evas_buffer_shutdown(void);
void _ecore_evas_buffer_render(Ecore_Evas *ee);
int _ecore_evas_buffer_render(Ecore_Evas *ee);
#endif
#ifdef BUILD_ECORE_EVAS_DIRECTFB
int _ecore_evas_directfb_shutdown(void);

View File

@ -112,36 +112,36 @@ _ecore_evas_render(Ecore_Evas *ee)
evas_render_updates_free(updates);
_ecore_evas_idle_timeout_update(ee);
}
return (int)updates;
return updates ? 1 : 0;
}
static int
_ecore_evas_sdl_render(Ecore_Evas *ee)
{
int rend = 0;
#ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
Eina_List *ll;
Ecore_Evas *ee2;
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
{
if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
_ecore_evas_buffer_render(ee2);
rend |= _ecore_evas_buffer_render(ee2);
if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
}
#endif
if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
if (ee->prop.avoid_damage) rend = _ecore_evas_render(ee);
else if ((ee->visible) ||
((ee->should_be_visible) && (ee->prop.fullscreen)) ||
((ee->should_be_visible) && (ee->prop.override)))
rend = _ecore_evas_render(ee);
rend |= _ecore_evas_render(ee);
else
evas_norender(ee->evas);
if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
return rend;
}

View File

@ -59,7 +59,7 @@ _ecore_evas_win32_render(Ecore_Evas *ee)
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
{
if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
_ecore_evas_buffer_render(ee2);
rend |= _ecore_evas_buffer_render(ee2);
if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
}
#endif

View File

@ -57,7 +57,7 @@ _ecore_evas_wince_render(Ecore_Evas *ee)
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
{
if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
_ecore_evas_buffer_render(ee2);
rend |= _ecore_evas_buffer_render(ee2);
if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
}
#endif

View File

@ -148,7 +148,7 @@ _ecore_evas_x_render(Ecore_Evas *ee)
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
{
if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
_ecore_evas_buffer_render(ee2);
rend |= _ecore_evas_buffer_render(ee2);
if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
}
#endif