Enlightenment CVS committal

Author  : doursse
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore


Modified Files:
        configure.in 


Log Message:
Here is ecore_x with XCB backend.

 * The XCB backend is disabled by default during the
   configuration. To enable it, add --enable-ecore-x-xcb. See the
   messages that configure displays when it finishes.
 * The way XCB is detected, and used in src/lib/ecore_x/Makefile.am
   should be improved
 * Any program that uses ecore_evas does not need to be modified.
   Any program that uses ecore_x may need some changes. That is,
   adding some functions (_prefetch and _fetch ones). No other
   change is needed. See the documention of any _get functions, as
   these are the ones that need those functions.
 * There are some missing parts, especially everything that involves
   the keyboard, as porting Xlib functions related to strings (utf8
   stuff, XKeysymToString, etc...) is an horror. So keyboard events
   are not working yet.
 * I tried to write as much documentation as I could. But there is
   certainly some missing doc here and there.

there are certainly other things that I have forgotten.

Improvements of that backend:
 * the creation of an ecore_evas is faster. Especially when done over
   an ssh connection (on my computer, 7-10s with Xlib, 1.5s with XCB,
   over an ssh)
 * A Window Manager should be more responsive. But it's not tomorrow
   that e17 will use it :)

Have fun !

===================================================================
RCS file: /cvs/e/e17/libs/ecore/configure.in,v
retrieving revision 1.191
retrieving revision 1.192
diff -u -3 -r1.191 -r1.192
--- configure.in        4 Apr 2007 12:28:16 -0000       1.191
+++ configure.in        13 Apr 2007 17:15:19 -0000      1.192
@@ -142,11 +142,92 @@
 ECORE_CHECK_MODULE([Txt], [yes], [$have_iconv],
   [ecore_txt_libs="$ecore_txt_libs $iconv_libs"])
 
+dnl Check for XCB
+have_ecore_x="no"
+have_ecore_x_xcb="no"
+
+AC_ARG_ENABLE(ecore-x-xcb,
+  AC_HELP_STRING(
+    [--enable-ecore-x-xcb],
+    [enable the ecore_x module with XCB backend. [[default=disabled]]]),
+  [ want_ecore_x_xcb=$enableval ],
+  [ want_ecore_x_xcb="no" ])
+
+AC_MSG_CHECKING(whether ecore_x with XCB backend is to be built)
+AC_MSG_RESULT($want_ecore_x_xcb)
+
+if test "x$want_ecore_x_xcb" = "xyes" ; then
+  PKG_CHECK_MODULES(XCB, xcb xcb-icccm xcb-image xcb-keysyms,
+    [ have_ecore_x_xcb="yes" ],
+    [ have_ecore_x_xcb="no" ])
+
+  if test "x$have_ecore_x_xcb" = "xyes" ; then
+    PKG_CHECK_MODULES(XCB_DAMAGE, xcb-damage,
+      [ have_ecore_x_xcb_damage="yes"
+      AC_DEFINE(ECORE_XCB_DAMAGE, 1, [Build support for XCB damage]) ],
+      [ have_ecore_x_xcb_damage="no" ])
+
+    PKG_CHECK_MODULES(XCB_DPMS, xcb-dpms,
+      [ have_ecore_x_xcb_dpms="yes"
+      AC_DEFINE(ECORE_XCB_DPMS, 1, [Build support for XCB dpms]) ],
+      [ have_ecore_x_xcb_dpms="no" ])
+
+    PKG_CHECK_MODULES(XCB_RANDR, xcb-randr,
+      [ have_ecore_x_xcb_randr="yes"
+      AC_DEFINE(ECORE_XCB_RANDR, 1, [Build support for XCB randr]) ],
+      [ have_ecore_x_xcb_randr="no" ])
+
+    PKG_CHECK_MODULES(XCB_RENDER, xcb-render,
+      [ have_ecore_x_xcb_render="yes"
+      AC_DEFINE(ECORE_XCB_RENDER, 1, [Build support for XCB render]) ],
+      [ have_ecore_x_xcb_render="no" ])
+
+    PKG_CHECK_MODULES(XCB_SCREENSAVER, xcb-screensaver,
+      [ have_ecore_x_xcb_screensaver="yes"
+      AC_DEFINE(ECORE_XCB_SCREENSAVER, 1, [Build support for XCB screensaver]) 
],
+      [ have_ecore_x_xcb_screensaver="no" ])
+
+    PKG_CHECK_MODULES(XCB_SHAPE, xcb-shape,
+      [ have_ecore_x_xcb_shape="yes"
+      AC_DEFINE(ECORE_XCB_SHAPE, 1, [Build support for XCB shape]) ],
+      [ have_ecore_x_xcb_shape="no" ])
+
+    PKG_CHECK_MODULES(XCB_SYNC, xcb-sync,
+      [ have_ecore_x_xcb_sync="yes"
+      AC_DEFINE(ECORE_XCB_SYNC, 1, [Build support for XCB sync]) ],
+      [ have_ecore_x_xcb_sync="no" ])
+
+    PKG_CHECK_MODULES(XCB_XFIXES, xcb-xfixes,
+      [ have_ecore_x_xcb_xfixes="yes"
+      AC_DEFINE(ECORE_XCB_FIXES, 1, [Build support for XCB xfixes]) ],
+      [ have_ecore_x_xcb_xfixes="no" ])
+
+    PKG_CHECK_MODULES(XCB_XINERAMA, xcb-xinerama,
+      [ have_ecore_x_xcb_xinerama="yes"
+      AC_DEFINE(ECORE_XCB_XINERAMA, 1, [Build support for XCB xinerama]) ],
+      [ have_ecore_x_xcb_xinerama="no" ])
+
+    PKG_CHECK_MODULES(XCB_XPRINT, xcb-xprint,
+      [ have_ecore_x_xcb_xprint="yes"
+      AC_DEFINE(ECORE_XCB_XPRINT, 1, [Build support for XCB xprint]) ],
+      [ have_ecore_x_xcb_xprint="no" ])
+
+    AC_DEFINE(BUILD_ECORE_X, 1, [Build Ecore_X Module (XCB backend)])
+    AC_DEFINE(HAVE_ECORE_X_XCB, 1, [Defined to 1 if XCB backend is enabled.])
+
+    requirements_ecore_evas="$requirements_ecore_evas ecore-x"
+    have_ecore_x_xcb_define="-DHAVE_ECORE_X_XCB"
+    have_ecore_x="yes"
+    AC_SUBST(have_ecore_x_xcb_define)
+  fi
+fi
+
 have_x="no"
 x_dir="";
 x_includes="";
 x_cflags="";
 x_libs="";
+if test "x$have_ecore_x_xcb" != "xyes" ; then
 AC_PATH_XTRA
 AC_CHECK_HEADER(X11/X.h,
   [
@@ -214,6 +295,8 @@
   requirements_ecore_evas="$requirements_ecore_evas ecore-x"
 fi
 
+fi
+
 ECORE_CHECK_MODULE([Job], [yes])
 
 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.16,
@@ -630,6 +713,8 @@
 AC_SUBST(requirements_ecore_x)
 
 # set up conditionals
+AM_CONDITIONAL(BUILD_ECORE_X, test "x$have_ecore_x" = "xyes")
+AM_CONDITIONAL(BUILD_ECORE_X_XCB, test "x$have_ecore_x_xcb" = "xyes")
 AM_CONDITIONAL(BUILD_ECORE_EVAS_GL, test $have_ecore_evas_gl = yes)
 AM_CONDITIONAL(BUILD_ECORE_EVAS_XRENDER, test $have_ecore_evas_xrender = yes)
 AM_CONDITIONAL(BUILD_ECORE_EVAS_DIRECTFB, test $have_ecore_evas_dfb = yes)
@@ -683,7 +768,11 @@
 echo "  Ecore_Job....................: $have_ecore_job"
 echo "  Ecore_Con....................: $have_ecore_con (OpenSSL: $use_openssl)"
 echo "  Ecore_Txt....................: $have_ecore_txt"
-echo "  Ecore_X......................: $have_ecore_x (Xcursor: $use_Xcursor) 
(Xprint: $use_xprint) (Xinerama: $use_xinerama) (Xrandr: $use_xrandr) 
(Xscreensaver: $use_xss) (Xrender: $use_xrender) (Xfixes: $use_xfixes) 
(Xdamage: $use_xdamage) (Xdpms: $use_xdpms)"
+if test "x$have_ecore_x_xcb" = "xyes" ; then
+echo "  Ecore_X (XCB backend)........: $have_ecore_x_xcb (Xprint: 
$have_ecore_x_xcb_xprint) (Xinerama: $have_ecore_x_xcb_xinerama) (Xrandr: 
$have_ecore_x_xcb_randr) (Xscreensaver: $have_ecore_x_xcb_screensaver) (Xshape: 
$have_ecore_x_xcb_shape) (Xsync: $have_ecore_x_xcb_sync) (Xrender: 
$have_ecore_x_xcb_render) (Xfixes: $have_ecore_x_xcb_xfixes) (Xdamage: 
$have_ecore_x_xcb_damage) (Xdpms: $have_ecore_x_xcb_dpms)"
+else
+  echo "  Ecore_X (Xlib backend).......: $have_ecore_x (Xcursor: $use_Xcursor) 
(Xprint: $use_xprint) (Xinerama: $use_xinerama) (Xrandr: $use_xrandr) 
(Xscreensaver: $use_xss) (Xrender: $use_xrender) (Xfixes: $use_xfixes) 
(Xdamage: $use_xdamage) (Xdpms: $use_xdpms)"
+fi
 echo "  Ecore_FB.....................: $have_ecore_fb"
 echo "  Ecore_DFB....................: $have_ecore_directfb"
 echo "  Ecore_Evas...................: $have_ecore_evas"



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to