Add async render support for ecore_evas_wayland_egl
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
parent
31a98ebd77
commit
e9757ad8eb
|
@ -157,6 +157,11 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent,
|
||||||
ee->prop.draw_frame = frame;
|
ee->prop.draw_frame = frame;
|
||||||
ee->alpha = EINA_FALSE;
|
ee->alpha = EINA_FALSE;
|
||||||
|
|
||||||
|
if (getenv("ECORE_EVAS_FORCE_SYNC_RENDER"))
|
||||||
|
ee->can_async_render = 0;
|
||||||
|
else
|
||||||
|
ee->can_async_render = 1;
|
||||||
|
|
||||||
/* frame offset and size */
|
/* frame offset and size */
|
||||||
if (ee->prop.draw_frame)
|
if (ee->prop.draw_frame)
|
||||||
{
|
{
|
||||||
|
@ -172,6 +177,10 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent,
|
||||||
evas_output_size_set(ee->evas, ee->w + fw, ee->h + fh);
|
evas_output_size_set(ee->evas, ee->w + fw, ee->h + fh);
|
||||||
evas_output_viewport_set(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
|
evas_output_viewport_set(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
|
||||||
|
|
||||||
|
if (ee->can_async_render)
|
||||||
|
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST,
|
||||||
|
_ecore_evas_wl_common_render_updates, ee);
|
||||||
|
|
||||||
/* FIXME: This needs to be set based on theme & scale */
|
/* FIXME: This needs to be set based on theme & scale */
|
||||||
if (ee->prop.draw_frame)
|
if (ee->prop.draw_frame)
|
||||||
evas_output_framespace_set(ee->evas, fx, fy, fw, fh);
|
evas_output_framespace_set(ee->evas, fx, fy, fw, fh);
|
||||||
|
@ -423,7 +432,7 @@ _ecore_evas_wl_hide(Ecore_Evas *ee)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha)
|
_ecore_evas_wayland_egl_alpha_do(Ecore_Evas *ee, int alpha)
|
||||||
{
|
{
|
||||||
Evas_Engine_Info_Wayland_Egl *einfo;
|
Evas_Engine_Info_Wayland_Egl *einfo;
|
||||||
Ecore_Evas_Engine_Wl_Data *wdata;
|
Ecore_Evas_Engine_Wl_Data *wdata;
|
||||||
|
@ -452,7 +461,20 @@ _ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent)
|
_ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha)
|
||||||
|
{
|
||||||
|
if (ee->in_async_render)
|
||||||
|
{
|
||||||
|
ee->delayed.alpha = alpha;
|
||||||
|
ee->delayed.alpha_changed = EINA_TRUE;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_ecore_evas_wayland_egl_alpha_do(ee, alpha);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ecore_evas_wayland_egl_transparent_do(Ecore_Evas *ee, int transparent)
|
||||||
{
|
{
|
||||||
Evas_Engine_Info_Wayland_Egl *einfo;
|
Evas_Engine_Info_Wayland_Egl *einfo;
|
||||||
Ecore_Evas_Engine_Wl_Data *wdata;
|
Ecore_Evas_Engine_Wl_Data *wdata;
|
||||||
|
@ -481,6 +503,19 @@ _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent)
|
||||||
|
{
|
||||||
|
if (ee->in_async_render)
|
||||||
|
{
|
||||||
|
ee->delayed.transparent = transparent;
|
||||||
|
ee->delayed.transparent_changed = EINA_TRUE;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_ecore_evas_wayland_egl_transparent_do(ee, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location)
|
_ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue