From bd13b46e250bec3403814de8142f6f0d8b91e361 Mon Sep 17 00:00:00 2001 From: Chris Michael Date: Tue, 18 Mar 2014 11:21:02 +0000 Subject: [PATCH] ecore-evas-drm: Add support for alpha & transparent setting @feature: This adds (preliminary) support for ecore_evas_alpha_set and ecore_evas_transparent_set NB: This is just the function placeholders and does not actually implement transparency yet Signed-off-by: Chris Michael --- .../ecore_evas/engines/drm/ecore_evas_drm.c | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c index 230cbbd104..4a6d2b835d 100644 --- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c +++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c @@ -52,6 +52,8 @@ static void _ecore_evas_drm_maximized_set(Ecore_Evas *ee, Eina_Bool on); static void _ecore_evas_drm_fullscreen_set(Ecore_Evas *ee, Eina_Bool on); static void _ecore_evas_drm_withdrawn_set(Ecore_Evas *ee, Eina_Bool on); static void _ecore_evas_drm_ignore_events_set(Ecore_Evas *ee, int ignore); +static void _ecore_evas_drm_alpha_set(Ecore_Evas *ee, int alpha); +static void _ecore_evas_drm_transparent_set(Ecore_Evas *ee, int transparent); static int _ecore_evas_drm_render(Ecore_Evas *ee); static void _ecore_evas_drm_render_updates(void *data, Evas *evas EINA_UNUSED, void *event); static int _ecore_evas_drm_render_updates_process(Ecore_Evas *ee, Eina_List *updates); @@ -106,8 +108,8 @@ static Ecore_Evas_Engine_Func _ecore_evas_drm_engine_func = _ecore_evas_drm_withdrawn_set, NULL, //void (*fn_sticky_set) (Ecore_Evas *ee, Eina_Bool on); _ecore_evas_drm_ignore_events_set, - NULL, //void (*fn_alpha_set) (Ecore_Evas *ee, int alpha); - NULL, //void (*fn_transparent_set) (Ecore_Evas *ee, int transparent); + _ecore_evas_drm_alpha_set, + _ecore_evas_drm_transparent_set, NULL, //void (*fn_profiles_set) (Ecore_Evas *ee, const char **profiles, int count); NULL, //void (*fn_profile_set) (Ecore_Evas *ee, const char *profile); @@ -636,6 +638,32 @@ _ecore_evas_drm_ignore_events_set(Ecore_Evas *ee, int ignore) ee->ignore_events = ignore; } +static void +_ecore_evas_drm_alpha_set(Ecore_Evas *ee, int alpha) +{ + if (ee->in_async_render) + { + ee->delayed.alpha = alpha; + ee->delayed.alpha_changed = EINA_TRUE; + return; + } + + /* FIXME: TODO: Finish */ +} + +static void +_ecore_evas_drm_transparent_set(Ecore_Evas *ee, int transparent) +{ + if (ee->in_async_render) + { + ee->delayed.transparent = transparent; + ee->delayed.transparent_changed = EINA_TRUE; + return; + } + + /* FIXME: TODO: Finish */ +} + static int _ecore_evas_drm_render(Ecore_Evas *ee) {