forked from enlightenment/efl
Restore old functionality of ecore_evas_alpha_set.
NB: We will still create all new canvases as alpha by setting it in evas, however this allows the 'state' of ecore_evas_alpha_set/get to retain it's original functionality and thus accurately report what a client application May have set alpha value too. NB: Fixes Phab Ticket T350 Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
parent
369f414726
commit
ec76c76f74
|
@ -159,7 +159,7 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent,
|
||||||
ee->prop.request_pos = 0;
|
ee->prop.request_pos = 0;
|
||||||
ee->prop.sticky = 0;
|
ee->prop.sticky = 0;
|
||||||
ee->prop.draw_frame = frame;
|
ee->prop.draw_frame = frame;
|
||||||
ee->alpha = EINA_TRUE;
|
ee->alpha = EINA_FALSE;
|
||||||
|
|
||||||
/* NB: Disabled for right now as it causes textgrid (terminology)
|
/* NB: Disabled for right now as it causes textgrid (terminology)
|
||||||
* to not draw text anymore */
|
* to not draw text anymore */
|
||||||
|
@ -184,7 +184,6 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent,
|
||||||
wdata->win =
|
wdata->win =
|
||||||
ecore_wl_window_new(p, x, y, w + fw, h + fh,
|
ecore_wl_window_new(p, x, y, w + fw, h + fh,
|
||||||
ECORE_WL_WINDOW_BUFFER_TYPE_EGL_WINDOW);
|
ECORE_WL_WINDOW_BUFFER_TYPE_EGL_WINDOW);
|
||||||
ecore_wl_window_alpha_set(wdata->win, ee->alpha);
|
|
||||||
ee->prop.window = wdata->win->id;
|
ee->prop.window = wdata->win->id;
|
||||||
|
|
||||||
ee->evas = evas_new();
|
ee->evas = evas_new();
|
||||||
|
@ -206,7 +205,7 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent,
|
||||||
if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas)))
|
if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas)))
|
||||||
{
|
{
|
||||||
einfo->info.display = ecore_wl_display_get();
|
einfo->info.display = ecore_wl_display_get();
|
||||||
einfo->info.destination_alpha = ee->alpha;
|
einfo->info.destination_alpha = EINA_TRUE;
|
||||||
einfo->info.rotation = ee->rotation;
|
einfo->info.rotation = ee->rotation;
|
||||||
einfo->info.depth = 32;
|
einfo->info.depth = 32;
|
||||||
einfo->info.surface = ecore_wl_window_surface_create(wdata->win);
|
einfo->info.surface = ecore_wl_window_surface_create(wdata->win);
|
||||||
|
@ -462,7 +461,7 @@ _ecore_evas_wayland_egl_alpha_do(Ecore_Evas *ee, int alpha)
|
||||||
|
|
||||||
if (!ee) return;
|
if (!ee) return;
|
||||||
if ((ee->alpha == alpha)) return;
|
if ((ee->alpha == alpha)) return;
|
||||||
ee->alpha = EINA_TRUE;
|
ee->alpha = alpha;
|
||||||
wdata = ee->engine.data;
|
wdata = ee->engine.data;
|
||||||
|
|
||||||
if (wdata->win) ecore_wl_window_alpha_set(wdata->win, ee->alpha);
|
if (wdata->win) ecore_wl_window_alpha_set(wdata->win, ee->alpha);
|
||||||
|
@ -471,7 +470,7 @@ _ecore_evas_wayland_egl_alpha_do(Ecore_Evas *ee, int alpha)
|
||||||
|
|
||||||
if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas)))
|
if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas)))
|
||||||
{
|
{
|
||||||
einfo->info.destination_alpha = ee->alpha;
|
einfo->info.destination_alpha = EINA_TRUE;
|
||||||
if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
|
if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
|
||||||
ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
|
ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
|
||||||
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
|
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
|
||||||
|
@ -483,7 +482,7 @@ _ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha)
|
||||||
{
|
{
|
||||||
if (ee->in_async_render)
|
if (ee->in_async_render)
|
||||||
{
|
{
|
||||||
ee->delayed.alpha = EINA_TRUE;
|
ee->delayed.alpha = alpha;
|
||||||
ee->delayed.alpha_changed = EINA_TRUE;
|
ee->delayed.alpha_changed = EINA_TRUE;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -502,7 +501,7 @@ _ecore_evas_wayland_egl_transparent_do(Ecore_Evas *ee, int transparent)
|
||||||
|
|
||||||
if (!ee) return;
|
if (!ee) return;
|
||||||
if ((ee->transparent == transparent)) return;
|
if ((ee->transparent == transparent)) return;
|
||||||
ee->transparent = EINA_TRUE;
|
ee->transparent = transparent;
|
||||||
|
|
||||||
wdata = ee->engine.data;
|
wdata = ee->engine.data;
|
||||||
if (wdata->win)
|
if (wdata->win)
|
||||||
|
@ -512,7 +511,7 @@ _ecore_evas_wayland_egl_transparent_do(Ecore_Evas *ee, int transparent)
|
||||||
|
|
||||||
if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas)))
|
if ((einfo = (Evas_Engine_Info_Wayland_Egl *)evas_engine_info_get(ee->evas)))
|
||||||
{
|
{
|
||||||
einfo->info.destination_alpha = ee->transparent;
|
einfo->info.destination_alpha = EINA_TRUE;
|
||||||
if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
|
if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
|
||||||
ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
|
ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
|
||||||
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
|
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
|
||||||
|
@ -524,7 +523,7 @@ _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent)
|
||||||
{
|
{
|
||||||
if (ee->in_async_render)
|
if (ee->in_async_render)
|
||||||
{
|
{
|
||||||
ee->delayed.transparent = EINA_TRUE;
|
ee->delayed.transparent = transparent;
|
||||||
ee->delayed.transparent_changed = EINA_TRUE;
|
ee->delayed.transparent_changed = EINA_TRUE;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -157,7 +157,7 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent,
|
||||||
ee->prop.request_pos = 0;
|
ee->prop.request_pos = 0;
|
||||||
ee->prop.sticky = 0;
|
ee->prop.sticky = 0;
|
||||||
ee->prop.draw_frame = frame;
|
ee->prop.draw_frame = frame;
|
||||||
ee->alpha = EINA_TRUE;
|
ee->alpha = EINA_FALSE;
|
||||||
|
|
||||||
if (getenv("ECORE_EVAS_FORCE_SYNC_RENDER"))
|
if (getenv("ECORE_EVAS_FORCE_SYNC_RENDER"))
|
||||||
ee->can_async_render = 0;
|
ee->can_async_render = 0;
|
||||||
|
@ -181,7 +181,6 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent,
|
||||||
wdata->win =
|
wdata->win =
|
||||||
ecore_wl_window_new(p, x, y, w + fw, h + fh,
|
ecore_wl_window_new(p, x, y, w + fw, h + fh,
|
||||||
ECORE_WL_WINDOW_BUFFER_TYPE_SHM);
|
ECORE_WL_WINDOW_BUFFER_TYPE_SHM);
|
||||||
ecore_wl_window_alpha_set(wdata->win, ee->alpha);
|
|
||||||
ee->prop.window = wdata->win->id;
|
ee->prop.window = wdata->win->id;
|
||||||
|
|
||||||
ee->evas = evas_new();
|
ee->evas = evas_new();
|
||||||
|
@ -201,7 +200,7 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent,
|
||||||
if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
|
if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
|
||||||
{
|
{
|
||||||
einfo->info.wl_shm = ecore_wl_shm_get();
|
einfo->info.wl_shm = ecore_wl_shm_get();
|
||||||
einfo->info.destination_alpha = ee->alpha;
|
einfo->info.destination_alpha = EINA_TRUE;
|
||||||
einfo->info.rotation = ee->rotation;
|
einfo->info.rotation = ee->rotation;
|
||||||
einfo->info.wl_surface = ecore_wl_window_surface_create(wdata->win);
|
einfo->info.wl_surface = ecore_wl_window_surface_create(wdata->win);
|
||||||
if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
|
if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
|
||||||
|
@ -461,7 +460,7 @@ _ecore_evas_wayland_shm_alpha_do(Ecore_Evas *ee, int alpha)
|
||||||
|
|
||||||
if (!ee) return;
|
if (!ee) return;
|
||||||
if ((ee->alpha == alpha)) return;
|
if ((ee->alpha == alpha)) return;
|
||||||
ee->alpha = EINA_TRUE;
|
ee->alpha = alpha;
|
||||||
wdata = ee->engine.data;
|
wdata = ee->engine.data;
|
||||||
|
|
||||||
if (wdata->win) ecore_wl_window_alpha_set(wdata->win, ee->alpha);
|
if (wdata->win) ecore_wl_window_alpha_set(wdata->win, ee->alpha);
|
||||||
|
@ -470,7 +469,7 @@ _ecore_evas_wayland_shm_alpha_do(Ecore_Evas *ee, int alpha)
|
||||||
|
|
||||||
if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
|
if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
|
||||||
{
|
{
|
||||||
einfo->info.destination_alpha = ee->alpha;
|
einfo->info.destination_alpha = EINA_TRUE;//ee->alpha;
|
||||||
if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
|
if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
|
||||||
ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
|
ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
|
||||||
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
|
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
|
||||||
|
@ -482,7 +481,7 @@ _ecore_evas_wl_alpha_set(Ecore_Evas *ee, int alpha)
|
||||||
{
|
{
|
||||||
if (ee->in_async_render)
|
if (ee->in_async_render)
|
||||||
{
|
{
|
||||||
ee->delayed.alpha = EINA_TRUE;
|
ee->delayed.alpha = alpha;
|
||||||
ee->delayed.alpha_changed = EINA_TRUE;
|
ee->delayed.alpha_changed = EINA_TRUE;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -500,7 +499,7 @@ _ecore_evas_wayland_shm_transparent_do(Ecore_Evas *ee, int transparent)
|
||||||
|
|
||||||
if (!ee) return;
|
if (!ee) return;
|
||||||
if ((ee->transparent == transparent)) return;
|
if ((ee->transparent == transparent)) return;
|
||||||
ee->transparent = EINA_TRUE;
|
ee->transparent = transparent;
|
||||||
|
|
||||||
wdata = ee->engine.data;
|
wdata = ee->engine.data;
|
||||||
if (wdata->win)
|
if (wdata->win)
|
||||||
|
@ -510,7 +509,7 @@ _ecore_evas_wayland_shm_transparent_do(Ecore_Evas *ee, int transparent)
|
||||||
|
|
||||||
if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
|
if ((einfo = (Evas_Engine_Info_Wayland_Shm *)evas_engine_info_get(ee->evas)))
|
||||||
{
|
{
|
||||||
einfo->info.destination_alpha = ee->transparent;
|
einfo->info.destination_alpha = EINA_TRUE;//ee->transparent;
|
||||||
if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
|
if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
|
||||||
ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
|
ERR("evas_engine_info_set() for engine '%s' failed.", ee->driver);
|
||||||
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
|
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
|
||||||
|
@ -522,7 +521,7 @@ _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent)
|
||||||
{
|
{
|
||||||
if (ee->in_async_render)
|
if (ee->in_async_render)
|
||||||
{
|
{
|
||||||
ee->delayed.transparent = EINA_TRUE;
|
ee->delayed.transparent = transparent;
|
||||||
ee->delayed.transparent_changed = EINA_TRUE;
|
ee->delayed.transparent_changed = EINA_TRUE;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue