On Tue, Jul 3, 2012 at 7:47 PM, Gustavo Sverzut Barbieri <barbi...@profusion.mobi> wrote: > This patch is bad as it adds many things at once :-(
Yeah, it seems to add profile support, but also stuff related to GL and maybe rotation or compositing. Don't really get the intent. > On Tuesday, July 3, 2012, Enlightenment SVN wrote: > >> Log: >> Ecore_Evas Merge Tizen changes to upstream EFL. >> >> >> >> Author: devilhorns >> Date: 2012-07-03 00:44:17 -0700 (Tue, 03 Jul 2012) >> New Revision: 73206 >> Trac: http://trac.enlightenment.org/e/changeset/73206 >> >> Modified: >> trunk/ecore/src/lib/ecore_evas/Ecore_Evas.h >> trunk/ecore/src/lib/ecore_evas/ecore_evas_buffer.c >> trunk/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c >> trunk/ecore/src/lib/ecore_evas/ecore_evas_directfb.c >> trunk/ecore/src/lib/ecore_evas/ecore_evas_ews.c >> trunk/ecore/src/lib/ecore_evas/ecore_evas_extn.c >> trunk/ecore/src/lib/ecore_evas/ecore_evas_fb.c >> trunk/ecore/src/lib/ecore_evas/ecore_evas_private.h >> trunk/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c >> trunk/ecore/src/lib/ecore_evas/ecore_evas_sdl.c >> trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c >> trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c >> trunk/ecore/src/lib/ecore_evas/ecore_evas_win32.c >> trunk/ecore/src/lib/ecore_evas/ecore_evas_wince.c >> trunk/ecore/src/lib/ecore_evas/ecore_evas_x.c >> >> Modified: trunk/ecore/src/lib/ecore_evas/Ecore_Evas.h >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/Ecore_Evas.h 2012-07-03 07:39:44 UTC >> (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/Ecore_Evas.h 2012-07-03 07:44:17 UTC >> (rev 73206) >> @@ -662,6 +662,26 @@ >> */ >> EAPI Eina_Bool ecore_evas_maximized_get(const Ecore_Evas *ee); >> /** >> + * @brief Set Ecore_Evas's window profile list. >> + * >> + * @param ee The Ecore_Evas >> + * @param profiles The profile name list >> + * @param num_profiles The number of profile names >> + * >> + * @warning Support for this depends on the underlying windowing system. >> + * @since 1.3.0 >> + */ >> +EAPI void ecore_evas_profiles_set(Ecore_Evas *ee, const char >> **profiles, unsigned int num_profiles); >> +/** >> + * @brief Get Ecore_Evas's window profile name. >> + * >> + * @param ee The Ecore_Evas >> + * @return The profile name >> + * >> + * @since 1.3.0 >> + */ >> +EAPI const char *ecore_evas_profile_get(const Ecore_Evas *ee); >> +/** >> * @brief Move an Ecore_Evas. >> * >> * @param ee The Ecore_Evas to move >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_buffer.c >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_buffer.c 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_buffer.c 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -515,6 +515,7 @@ >> NULL, >> _ecore_evas_buffer_alpha_set, >> NULL, //transparent >> + NULL, // profiles_set >> >> NULL, >> NULL, >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_cocoa.c 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -463,6 +463,7 @@ >> NULL, >> NULL, >> NULL, //transparent >> + NULL, // profiles_set >> >> NULL, >> NULL, >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_directfb.c >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_directfb.c 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_directfb.c 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -489,6 +489,7 @@ >> NULL, /* ignore events */ >> NULL, /* alpha */ >> NULL, //transparent >> + NULL, // profiles_set >> >> NULL, >> NULL, >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_ews.c >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_ews.c 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_ews.c 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -683,6 +683,7 @@ >> _ecore_evas_ews_ignore_events_set, >> _ecore_evas_ews_alpha_set, >> _ecore_evas_ews_transparent_set, >> + NULL, // profiles_set >> >> NULL, >> NULL, >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_extn.c >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_extn.c 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_extn.c 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -2003,6 +2003,7 @@ >> NULL, >> _ecore_evas_extn_socket_alpha_set, >> NULL, //transparent >> + NULL, // profiles_set >> >> NULL, >> NULL, >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_fb.c >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_fb.c 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_fb.c 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -551,6 +551,7 @@ >> NULL, >> NULL, >> NULL, //transparent >> + NULL, // profiles_set >> >> NULL, >> NULL, >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_private.h >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_private.h 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_private.h 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -177,6 +177,7 @@ >> void (*fn_ignore_events_set) (Ecore_Evas *ee, int ignore); >> void (*fn_alpha_set) (Ecore_Evas *ee, int alpha); >> void (*fn_transparent_set) (Ecore_Evas *ee, int transparent); >> + void (*fn_profiles_set) (Ecore_Evas *ee, const char **profiles, int >> num_profiles); >> >> void (*fn_window_group_set) (Ecore_Evas *ee, const Ecore_Evas >> *ee_group); >> void (*fn_aspect_set) (Ecore_Evas *ee, double aspect); >> @@ -330,6 +331,7 @@ >> char *title; >> char *name; >> char *clas; >> + char *profile; >> struct { >> int w, h; >> } min, >> @@ -396,6 +398,7 @@ >> unsigned char no_comp_sync : 1; >> unsigned char semi_sync : 1; >> unsigned char deleted : 1; >> + int gl_sync_draw_done; // added by gl77.lee >> }; >> >> void _ecore_evas_ref(Ecore_Evas *ee); >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_psl1ght.c 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -395,6 +395,7 @@ >> NULL, >> NULL, >> NULL, //transparent >> + NULL, // profiles_set >> >> NULL, >> NULL, >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_sdl.c >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_sdl.c 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_sdl.c 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -431,6 +431,7 @@ >> NULL, >> NULL, >> NULL, //transparent >> + NULL, // profiles_set >> >> NULL, >> NULL, >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_egl.c 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -2,7 +2,7 @@ >> # include "config.h" >> #endif >> >> -#define LOGFNS 1 >> +//#define LOGFNS 1 >> >> #ifdef LOGFNS >> # include <stdio.h> >> @@ -143,6 +143,7 @@ >> _ecore_evas_wl_ignore_events_set, >> _ecore_evas_wl_alpha_set, >> _ecore_evas_wl_transparent_set, >> + NULL, // func profiles set >> NULL, >> NULL, >> NULL, >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_wayland_shm.c 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -148,6 +148,7 @@ >> _ecore_evas_wl_ignore_events_set, >> _ecore_evas_wl_alpha_set, >> _ecore_evas_wl_transparent_set, >> + NULL, // func profiles set >> NULL, // window group set >> NULL, // aspect set >> NULL, // urgent set >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_win32.c >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_win32.c 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_win32.c 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -1072,6 +1072,7 @@ >> NULL, /* _ecore_evas_x_ignore_events_set */ >> _ecore_evas_win32_alpha_set, >> NULL, //transparent >> + NULL, // profiles_set >> >> NULL, >> NULL, >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_wince.c >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_wince.c 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_wince.c 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -772,6 +772,7 @@ >> NULL, /* _ecore_evas_x_ignore_events_set */ >> NULL, /* _ecore_evas_x_alpha_set */ >> NULL, //transparent >> + NULL, // profiles_set >> >> NULL, >> NULL, >> >> Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_x.c >> =================================================================== >> --- trunk/ecore/src/lib/ecore_evas/ecore_evas_x.c 2012-07-03 >> 07:39:44 UTC (rev 73205) >> +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_x.c 2012-07-03 >> 07:44:17 UTC (rev 73206) >> @@ -102,6 +102,8 @@ >> static void >> _ecore_evas_x_sync_set(Ecore_Evas *ee) >> { >> + Ecore_X_Sync_Counter sync_counter = ee->engine.x.sync_counter; >> + >> if (((ee->should_be_visible) || (ee->visible)) && >> ((ecore_x_e_comp_sync_supported_get(ee->engine.x.win_root)) && >> (!ee->no_comp_sync) && (_ecore_evas_app_comp_sync))) >> @@ -112,9 +114,13 @@ >> else >> { >> if (ee->engine.x.sync_counter) >> + { >> ecore_x_sync_counter_free(ee->engine.x.sync_counter); >> + ee->engine.x.sync_val = 0; >> + } >> ee->engine.x.sync_counter = 0; >> } >> + if (sync_counter != ee->engine.x.sync_counter) >> ecore_x_e_comp_sync_counter_set(ee->prop.window, >> ee->engine.x.sync_counter); >> } >> >> @@ -123,6 +129,7 @@ >> { >> if (!ee->engine.x.sync_counter) return; >> ecore_x_sync_counter_free(ee->engine.x.sync_counter); >> + ee->engine.x.sync_val = 0; >> ee->engine.x.sync_counter = 0; >> } >> >> @@ -709,6 +716,34 @@ >> break; >> } >> } >> + else if (e->atom == ECORE_X_ATOM_E_PROFILE) >> + { >> + char *p = ecore_x_e_window_profile_get(e->win); >> + if ((p) && (ee->prop.profile)) >> + { >> + if (strcmp(p, ee->prop.profile) != 0) >> + { >> + free(ee->prop.profile); >> + ee->prop.profile = strdup(p); >> + state_change = 1; >> + } >> + } >> + else if ((!p) && (ee->prop.profile)) >> + { >> + free(ee->prop.profile); >> + ee->prop.profile = NULL; >> + state_change = 1; >> + } >> + else if ((p) && (!ee->prop.profile)) >> + { >> + ee->prop.profile = strdup(p); >> + state_change = 1; >> + } >> + >> + if (p) >> + free(p); >> + } >> + >> if (state_change) >> { >> if (ee->func.fn_state_change) ee->func.fn_state_change(ee); >> @@ -1115,6 +1150,17 @@ >> ee = ecore_event_window_match(e->win); >> if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */ >> if (e->win != ee->prop.window) return ECORE_CALLBACK_PASS_ON; >> + /* some GL drivers are doing buffer copy in a separate thread. >> + * we need to check whether GL driver sends SYNC_DRAW_DONE msg afger >> copying >> + * that are required in order to exactly render. - added by gl77.lee >> + */ >> + if (ee->gl_sync_draw_done < 0) >> + { >> + if (getenv("ECORE_EVAS_GL_SYNC_DRAW_DONE")) >> + ee->gl_sync_draw_done = >> atoi(getenv("ECORE_EVAS_GL_SYNC_DRAW_DONE")); >> + else >> + ee->gl_sync_draw_done = 0; >> + } >> if (first_map_bug < 0) >> { >> char *bug = NULL; >> @@ -1671,14 +1717,41 @@ >> } >> } >> >> +#define _USE_WIN_ROT_EFFECT 1 >> + >> +#if _USE_WIN_ROT_EFFECT >> +static void _ecore_evas_x_flush_pre(void *data, Evas *e __UNUSED__, void >> *event_info __UNUSED__); >> + >> +typedef struct _Ecore_Evas_X_Rotation_Effect Ecore_Evas_X_Rotation_Effect; >> +struct _Ecore_Evas_X_Rotation_Effect >> +{ >> + Eina_Bool wait_for_comp_reply; >> +}; >> + >> +static Ecore_Evas_X_Rotation_Effect _rot_effect = >> +{ >> + EINA_FALSE >> +}; >> + >> static void >> +_ecore_evas_x_rotation_effect_setup(void) >> +{ >> + _rot_effect.wait_for_comp_reply = EINA_TRUE; >> +} >> +#endif /* end of _USE_WIN_ROT_EFFECT */ >> + >> +static void >> _ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation, int resize) >> { >> + if (ee->rotation == rotation) return; >> + if (!strcmp(ee->driver, "xrender_x11")) return; >> + >> +#if _USE_WIN_ROT_EFFECT >> int angles[2]; >> angles[0] = rotation; >> angles[1] = ee->rotation; >> +#endif /* end of _USE_WIN_ROT_EFFECT */ >> >> - if (ee->rotation == rotation) return; >> if (!strcmp(ee->driver, "opengl_x11")) >> { >> #ifdef BUILD_ECORE_EVAS_OPENGL_X11 >> @@ -1689,9 +1762,15 @@ >> einfo->info.rotation = rotation; >> _ecore_evas_x_rotation_set_internal(ee, rotation, resize, >> (Evas_Engine_Info *)einfo); >> +# if _USE_WIN_ROT_EFFECT >> ecore_x_window_prop_property_set(ee->prop.window, >> >> ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE, >> > > > > -- > Gustavo Sverzut Barbieri > http://profusion.mobi embedded systems > -------------------------------------- > MSN: barbi...@gmail.com > Skype: gsbarbieri > Mobile: +55 (19) 9225-2202 > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- Cedric BAIL ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel