same than my previous mail : doc, @since, ChangeLog, NEWS Vincent
On Tue, Dec 27, 2011 at 12:27 AM, Enlightenment SVN <[email protected]> wrote: > Log: > Ecore: Add Ecore_Wayland (Wayland backend like ecore_x). > > Ecore_Evas: Add 'drame_frame' functions. > Add ecore_evas_wayland code (for creating ecore_evas' in wayland). > > NB: Merry Christmas EFL !!, Here is you're gift :) > > > > Author: devilhorns > Date: 2011-12-26 15:27:20 -0800 (Mon, 26 Dec 2011) > New Revision: 66542 > Trac: http://trac.enlightenment.org/e/changeset/66542 > > Added: > trunk/ecore/ecore-wayland.pc.in > 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_wayland/ > trunk/ecore/src/lib/ecore_wayland/Ecore_Wayland.h > trunk/ecore/src/lib/ecore_wayland/Makefile.am > trunk/ecore/src/lib/ecore_wayland/ecore_wl.c > trunk/ecore/src/lib/ecore_wayland/ecore_wl_private.h > trunk/ecore/src/lib/ecore_wayland/ecore_wl_window.c > Modified: > trunk/ecore/Makefile.am trunk/ecore/configure.ac > trunk/ecore/src/lib/Makefile.am trunk/ecore/src/lib/ecore_evas/Ecore_Evas.h > trunk/ecore/src/lib/ecore_evas/Makefile.am > trunk/ecore/src/lib/ecore_evas/ecore_evas.c > trunk/ecore/src/lib/ecore_evas/ecore_evas_fb.c > trunk/ecore/src/lib/ecore_evas/ecore_evas_private.h > > Modified: trunk/ecore/Makefile.am > =================================================================== > --- trunk/ecore/Makefile.am 2011-12-26 23:13:52 UTC (rev 66541) > +++ trunk/ecore/Makefile.am 2011-12-26 23:27:20 UTC (rev 66542) > @@ -106,6 +106,7 @@ > ecore-psl1ght.pc.in \ > ecore-input.pc.in \ > ecore-wince.pc.in \ > +ecore-wayland.pc.in \ > ecore.spec.in \ > ecore.spec \ > m4/ac_abstract_socket.m4 \ > @@ -190,6 +191,10 @@ > pkgconfig_DATA += ecore-psl1ght.pc > endif > > +if BUILD_ECORE_WAYLAND > +pkgconfig_DATA += ecore-wayland.pc > +endif > + > .PHONY: doc > > # Documentation > > Modified: trunk/ecore/configure.ac > =================================================================== > --- trunk/ecore/configure.ac 2011-12-26 23:13:52 UTC (rev 66541) > +++ trunk/ecore/configure.ac 2011-12-26 23:27:20 UTC (rev 66542) > @@ -133,6 +133,7 @@ > want_ecore_fb="no" > want_ecore_directfb="no" > want_ecore_wince="no" > +want_ecore_wayland="no" > > # ecore_x options (both xlib and xcb) > want_ecore_x_composite="yes" > @@ -173,6 +174,8 @@ > want_ecore_evas_fb="no" > want_ecore_evas_software_16_wince="no" > want_ecore_evas_ews="yes" > +want_ecore_evas_wayland_shm="no" > +want_ecore_evas_wayland_egl="no" > > # ecore_imf modules > want_ecore_imf_xim="no" > @@ -225,6 +228,7 @@ > want_ecore_fb="yes" > want_ecore_imf="yes" > want_ecore_x="yes" > + want_ecore_wayland="yes" > want_ecore_evas_software_x11="yes" > want_ecore_evas_opengl_x11="yes" > want_ecore_evas_software_16_x11="yes" > @@ -235,6 +239,8 @@ > want_ecore_evas_gl_cocoa="no" > want_ecore_evas_directfb="yes" > want_ecore_evas_fb="yes" > + want_ecore_evas_wayland_shm="yes" > + want_ecore_evas_wayland_egl="yes" > want_ecore_imf_xim="yes" > want_ecore_imf_scim="yes" > ;; > @@ -265,6 +271,7 @@ > requirements_ecore_wince="" > requirements_ecore_imf_xim="" > requirements_ecore_imf_scim="" > +requirements_ecore_wayland="" > > AC_CHECK_DECL([MAXHOSTNAMELEN],[FOUND_MAXHOSTNAMELEN=yes]) > > @@ -1838,6 +1845,34 @@ > [${have_ecore_psl1ght}], > [requirements_ecore_evas="ecore-psl1ght >= 1.1.99 > ${requirements_ecore_evas}"]) > > +### WAYLAND > + > +ecore_wayland_deps="no" > +have_wayland="no" > +if test "x${want_ecore_wayland}" = "xyes" ; then > + PKG_CHECK_MODULES([WAYLAND], [wayland-client xkbcommon], > [have_wayland="yes"], [have_wayland="no"]) > +fi > +if test "x${have_ecore_input}" = "xyes" -a "x${have_wayland}" = "xyes" ; then > + ecore_wayland_deps="yes" > +fi > + > +ECORE_CHECK_MODULE([wayland], [${want_ecore_wayland}], [Wayland], > [${ecore_wayland_deps}]) > +if test "x${have_ecore_wayland}" = "xyes" ; then > + requirements_ecore_wayland="ecore-input >= 1.1.0 wayland-client xkbcommon > ${requirements_ecore_wayland}" > +fi > + > +ECORE_EVAS_CHECK_MODULE_FULL([wayland-shm], [wayland-shm], > + [${want_ecore_evas_wayland_shm}], > + [Wayland Shm], > + [${have_ecore_wayland}], > + [requirements_ecore_evas="ecore-wayland >= 1.1.0 > ${requirements_ecore_evas}"]) > + > +ECORE_EVAS_CHECK_MODULE_FULL([wayland-egl], [wayland-egl], > + [${want_ecore_evas_wayland_egl}], > + [Wayland Egl], > + [${have_ecore_wayland}], > + [requirements_ecore_evas="ecore-wayland >= 1.1.0 > ${requirements_ecore_evas}"]) > + > ### install and build examples > > EFL_CHECK_BUILD_EXAMPLES([enable_build_examples="yes"], > [enable_build_examples="no"]) > @@ -1865,6 +1900,7 @@ > AC_SUBST(requirements_ecore_wince) > AC_SUBST(requirements_ecore_imf_xim) > AC_SUBST(requirements_ecore_imf_scim) > +AC_SUBST(requirements_ecore_wayland) > > AC_CONFIG_FILES([ > Makefile > @@ -1885,6 +1921,7 @@ > ecore-cocoa.pc > ecore-psl1ght.pc > ecore-wince.pc > +ecore-wayland.pc > ecore.pc > doc/ecore.dox > doc/Makefile > @@ -1913,6 +1950,7 @@ > src/lib/ecore_x/Makefile > src/lib/ecore_x/xlib/Makefile > src/lib/ecore_x/xcb/Makefile > +src/lib/ecore_wayland/Makefile > src/examples/Makefile > src/tests/Makefile > src/modules/Makefile > @@ -2033,6 +2071,7 @@ > echo " Ecore_DirectFB...............: $have_ecore_directfb" > echo " Ecore_WinCE..................: $have_ecore_wince" > echo " Ecore_PSL1GHT................: $have_ecore_psl1ght" > +echo " Ecore_Wayland................: $have_ecore_wayland" > > echo > echo " Ecore Evas:" > @@ -2066,6 +2105,8 @@ > echo " Software 16bit DirectDraw..: $have_ecore_evas_software_16_ddraw" > echo " Software 16bit WinCE.......: $have_ecore_evas_software_16_wince" > echo " Sing.Proc. Windowing System: $have_ecore_evas_ews" > + echo " Wayland Shm................: $have_ecore_evas_wayland_shm" > + echo " Wayland Egl................: $have_ecore_evas_wayland_egl" > fi > echo > echo " Tests................: ${enable_tests}" > > Modified: trunk/ecore/src/lib/Makefile.am > =================================================================== > --- trunk/ecore/src/lib/Makefile.am 2011-12-26 23:13:52 UTC (rev 66541) > +++ trunk/ecore/src/lib/Makefile.am 2011-12-26 23:27:20 UTC (rev 66542) > @@ -46,6 +46,10 @@ > SUBDIRS += ecore_cocoa > endif > > +if BUILD_ECORE_WAYLAND > +SUBDIRS += ecore_wayland > +endif > + > if BUILD_ECORE_IPC > SUBDIRS += ecore_ipc > endif > > Modified: trunk/ecore/src/lib/ecore_evas/Ecore_Evas.h > =================================================================== > --- trunk/ecore/src/lib/ecore_evas/Ecore_Evas.h 2011-12-26 23:13:52 UTC (rev > 66541) > +++ trunk/ecore/src/lib/ecore_evas/Ecore_Evas.h 2011-12-26 23:27:20 UTC (rev > 66542) > @@ -81,6 +81,8 @@ > #define HAVE_ECORE_EVAS_WINCE 1 > #define HAVE_ECORE_EVAS_EWS 1 > #define HAVE_ECORE_EVAS_PSL1GHT 1 > +#define HAVE_ECORE_EVAS_WAYLAND_SHM 1 > +#define HAVE_ECORE_EVAS_WAYLAND_EGL 1 > > typedef enum _Ecore_Evas_Engine_Type > { > @@ -104,7 +106,9 @@ > ECORE_EVAS_ENGINE_SOFTWARE_16_WINCE, > ECORE_EVAS_ENGINE_OPENGL_SDL, > ECORE_EVAS_ENGINE_EWS, > - ECORE_EVAS_ENGINE_PSL1GHT > + ECORE_EVAS_ENGINE_PSL1GHT, > + ECORE_EVAS_ENGINE_WAYLAND_SHM, > + ECORE_EVAS_ENGINE_WAYLAND_EGL > } Ecore_Evas_Engine_Type; > > typedef enum _Ecore_Evas_Avoid_Damage_Type > @@ -144,6 +148,10 @@ > typedef struct _Ecore_Cocoa_Window Ecore_Cocoa_Window; > #endif > > +#ifndef _ECORE_WAYLAND_H_ > +typedef struct _Ecore_Wl_Window Ecore_Wl_Window; > +#endif > + > #ifndef _ECORE_EVAS_PRIVATE_H > /* basic data types */ > typedef struct _Ecore_Evas Ecore_Evas; > @@ -689,6 +697,9 @@ > EAPI Ecore_Evas *ecore_evas_directfb_new(const char *disp_name, int > windowed, int x, int y, int w, int h); > EAPI Ecore_DirectFB_Window *ecore_evas_directfb_window_get(const Ecore_Evas > *ee); > > +EAPI Ecore_Evas *ecore_evas_wayland_shm_new(const char *disp_name, int > x, int y, int w, int h, int frame); > +//EAPI Ecore_Evas *ecore_evas_wayland_egl_new(const char *disp_name, int > x, int y, int w, int h, int frame); > + > /** > * @brief Create a new @c Ecore_Evas canvas bound to the Evas > * @b buffer engine > @@ -1450,6 +1461,9 @@ > */ > EAPI void ecore_evas_screen_geometry_get(const Ecore_Evas *ee, int > *x, int *y, int *w, int *h); > > +EAPI void ecore_evas_draw_frame_set(Ecore_Evas *ee, Eina_Bool > draw_frame); > +EAPI Eina_Bool ecore_evas_draw_frame_get(const Ecore_Evas *ee); > + > /** > * @brief Associate the given object to this ecore evas. > * > > Modified: trunk/ecore/src/lib/ecore_evas/Makefile.am > =================================================================== > --- trunk/ecore/src/lib/ecore_evas/Makefile.am 2011-12-26 23:13:52 UTC (rev > 66541) > +++ trunk/ecore/src/lib/ecore_evas/Makefile.am 2011-12-26 23:27:20 UTC (rev > 66542) > @@ -1,8 +1,8 @@ > MAINTAINERCLEANFILES = Makefile.in > > if BUILD_ECORE_X > -ECORE_X_INC = -I$(top_srcdir)/src/lib/ecore_x @x_cflags@ @ECORE_XCB_CFLAGS@ > -ECORE_X_LIB = $(top_builddir)/src/lib/ecore_x/libecore_x.la @x_libs@ > @ECORE_XCB_LIBS@ > +ECORE_X_INC = -I$(top_srcdir)/src/lib/ecore_x @x_cflags@ > +ECORE_X_LIB = $(top_builddir)/src/lib/ecore_x/libecore_x.la @x_libs@ > else > ECORE_X_INC = > ECORE_X_LIB = > @@ -66,6 +66,16 @@ > ECORE_PSL1GHT_LIB = > endif > > +if BUILD_ECORE_WAYLAND > +ECORE_WAYLAND_INC = -I$(top_srcdir)/src/lib/ecore_wayland @WAYLAND_CFLAGS@ > +ECORE_WAYLAND_LIB = $(top_builddir)/src/lib/ecore_wayland/libecore_wayland.la > +ECORE_WAYLAND_LIBADD = @WAYLAND_LIBS@ $(ECORE_WAYLAND_LIB) > +else > +ECORE_WAYLAND_INC = > +ECORE_WAYLAND_LIB = > +ECORE_WAYLAND_LIBADD = > +endif > + > if BUILD_ECORE_IPC > ECORE_IPC_INC= \ > -I$(top_srcdir)/src/lib/ecore_ipc \ > @@ -92,6 +102,7 @@ > $(ECORE_COCOA_INC) \ > $(ECORE_WINCE_INC) \ > $(ECORE_PSL1GHT_INC) \ > +$(ECORE_WAYLAND_INC) \ > $(ECORE_IPC_INC) \ > @EVAS_CFLAGS@ \ > @EINA_CFLAGS@ \ > @@ -116,6 +127,7 @@ > ecore_evas_wince.c \ > ecore_evas_ews.c \ > ecore_evas_psl1ght.c \ > +ecore_evas_wayland_shm.c \ > ecore_evas_extn.c > > libecore_evas_la_LIBADD = \ > @@ -129,6 +141,8 @@ > $(ECORE_WINCE_LIB) \ > $(ECORE_IPC_LIB) \ > $(ECORE_PSL1GHT_LIB) \ > +$(ECORE_WAYLAND_LIB) \ > +$(ECORE_WAYLAND_LIBADD) \ > $(top_builddir)/src/lib/ecore_input/libecore_input.la \ > $(top_builddir)/src/lib/ecore_input_evas/libecore_input_evas.la \ > $(top_builddir)/src/lib/ecore/libecore.la \ > > Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas.c > =================================================================== > --- trunk/ecore/src/lib/ecore_evas/ecore_evas.c 2011-12-26 23:13:52 UTC (rev > 66541) > +++ trunk/ecore/src/lib/ecore_evas/ecore_evas.c 2011-12-26 23:27:20 UTC (rev > 66542) > @@ -201,6 +201,18 @@ > #else > return EINA_FALSE; > #endif > + case ECORE_EVAS_ENGINE_WAYLAND_SHM: > +#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM > + return EINA_TRUE; > +#else > + return EINA_FALSE; > +#endif > + case ECORE_EVAS_ENGINE_WAYLAND_EGL: > +#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL > + return EINA_TRUE; > +#else > + return EINA_FALSE; > +#endif > default: > return EINA_FALSE; > }; > @@ -293,6 +305,7 @@ > #ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE > while (_ecore_evas_wince_shutdown()); > #endif > + > if (_ecore_evas_async_events_fd) > ecore_main_fd_handler_del(_ecore_evas_async_events_fd); > > @@ -588,6 +601,40 @@ > } > #endif > > +#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM > +static Ecore_Evas * > +_ecore_evas_constructor_wayland_shm(int x, int y, int w, int h, const char > *extra_options) > +{ > + char *disp_name = NULL; > + unsigned int frame = 0; > + Ecore_Evas *ee; > + > + _ecore_evas_parse_extra_options_str(extra_options, "display=", > &disp_name); > + _ecore_evas_parse_extra_options_uint(extra_options, "frame=", &frame); > + ee = ecore_evas_wayland_shm_new(disp_name, x, y, w, h, frame); > + free(disp_name); > + > + return ee; > +} > +#endif > + > +#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL > +static Ecore_Evas * > +_ecore_evas_constructor_wayland_egl(int x, int y, int w, int h, const char > *extra_options) > +{ > + char *disp_name = NULL; > + unsigned int frame = 0; > +// Ecore_Evas *ee; > + > + _ecore_evas_parse_extra_options_str(extra_options, "display=", > &disp_name); > + _ecore_evas_parse_extra_options_uint(extra_options, "frame=", &frame); > +// ee = ecore_evas_wayland_egl_new(disp_name, x, y, w, h, frame); > + free(disp_name); > + > + return NULL; > +} > +#endif > + > #ifdef BUILD_ECORE_EVAS_SOFTWARE_GDI > static Ecore_Evas * > _ecore_evas_constructor_software_gdi(int x, int y, int w, int h, const char > *extra_options) > @@ -725,7 +772,16 @@ > {"psl1ght", _ecore_evas_constructor_psl1ght}, > #endif > > - /* Last chance to have a window */ > + /* Wayland */ > +#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM > + {"wayland_shm", _ecore_evas_constructor_wayland_shm}, > +#endif > + > +#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL > + {"wayland_egl", _ecore_evas_constructor_wayland_egl}, > +#endif > + > + /* Last chance to have a window */ > #ifdef BUILD_ECORE_EVAS_OPENGL_SDL > {"opengl_sdl", _ecore_evas_constructor_opengl_sdl}, > #endif > @@ -2019,8 +2075,8 @@ > ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS, > "ecore_evas_withdrawn_get"); > return EINA_FALSE; > - } else > - return ee->prop.withdrawn ? EINA_TRUE : EINA_FALSE; > + } > + return ee->prop.withdrawn ? EINA_TRUE : EINA_FALSE; > } > > /** > @@ -2059,8 +2115,8 @@ > ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS, > "ecore_evas_sticky_get"); > return EINA_FALSE; > - } else > - return ee->prop.sticky ? EINA_TRUE : EINA_FALSE; > + } > + return ee->prop.sticky ? EINA_TRUE : EINA_FALSE; > } > > EAPI void > @@ -2181,6 +2237,28 @@ > IFE; > } > > +EAPI void > +ecore_evas_draw_frame_set(Ecore_Evas *ee, Eina_Bool draw_frame) > +{ > + if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) > + { > + ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS, "ecore_evas_draw_frame_set"); > + return; > + } > + ee->prop.draw_frame = draw_frame; > +} > + > +EAPI Eina_Bool > +ecore_evas_draw_frame_get(const Ecore_Evas *ee) > +{ > + if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) > + { > + ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS, "ecore_evas_draw_frame_get"); > + return EINA_FALSE; > + } > + return ee->prop.draw_frame; > +} > + > /* fps debug calls - for debugging how much time your app actually spends */ > /* rendering graphics... :) */ > > > Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_fb.c > =================================================================== > --- trunk/ecore/src/lib/ecore_evas/ecore_evas_fb.c 2011-12-26 23:13:52 > UTC (rev 66541) > +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_fb.c 2011-12-26 23:27:20 > UTC (rev 66542) > @@ -155,9 +155,9 @@ > if (ee->visible) > { > Eina_List *updates; > - > Eina_List *ll; > Ecore_Evas *ee2; > + > if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee); > > EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) > > Modified: trunk/ecore/src/lib/ecore_evas/ecore_evas_private.h > =================================================================== > --- trunk/ecore/src/lib/ecore_evas/ecore_evas_private.h 2011-12-26 23:13:52 > UTC (rev 66541) > +++ trunk/ecore/src/lib/ecore_evas/ecore_evas_private.h 2011-12-26 23:27:20 > UTC (rev 66542) > @@ -79,10 +79,18 @@ > # include <Evas_Engine_Gl_Cocoa.h> > #endif > > -/** > - Log domain macros and variable > - **/ > +#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM > +# include "Ecore_Wayland.h" > +# include <Evas_Engine_Wayland_Shm.h> > +#endif > > +#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL > +# include "Ecore_Wayland.h" > +# include <Evas_Engine_Wayland_Egl.h> > +#endif > + > +/** Log domain macros and variables **/ > + > extern int _ecore_evas_log_dom; > > #ifdef ECORE_EVAS_DEFAULT_LOG_COLOR > @@ -260,6 +268,20 @@ > } ews; > #endif > > +#if defined(BUILD_ECORE_EVAS_WAYLAND_SHM) || > defined(BUILD_ECORE_EVAS_WAYLAND_EGL) > + struct > + { > + Evas_Object *frame; > + > +# ifdef BUILD_ECORE_EVAS_WAYLAND_SHM > + struct wl_surface *surface; > + struct wl_shell_surface *shell_surface; > + struct wl_buffer *buffer; > +# endif > + > + } wl; > +#endif > + > Ecore_Timer *idle_flush_timer; > }; > > @@ -322,6 +344,7 @@ > char withdrawn : 1; > char sticky : 1; > char request_pos : 1; > + char draw_frame : 1; > } prop; > > struct { > > > ------------------------------------------------------------------------------ > Write once. Port to many. > Get the SDK and tools to simplify cross-platform app development. Create > new or port existing apps to sell to consumers worldwide. Explore the > Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join > http://p.sf.net/sfu/intel-appdev > _______________________________________________ > enlightenment-svn mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn ------------------------------------------------------------------------------ Write once. Port to many. Get the SDK and tools to simplify cross-platform app development. Create new or port existing apps to sell to consumers worldwide. Explore the Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join http://p.sf.net/sfu/intel-appdev _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
