From ef61dbeb146d707a25c97a1d225e72d1364b8ce3 Mon Sep 17 00:00:00 2001 From: doursse Date: Wed, 23 Jul 2008 10:00:01 +0000 Subject: [PATCH] Big change in configure.in, ecore_x and ecore_evas. Everything compile nicely after a make maintainer-clean, with xlib or xcb. e17 also has no problem. Please report any problem. Thanks * put xlib and xcb specific code in their own directories inside ecore_x * fix xcb logic check in autotools and ecore_evas * update configure.in for detection of ecore_evas with xlib and xcb support, update ecore_evas accordingly. Note that e17 needs a little fix after that, it will come in a few minutes SVN revision: 35188 --- legacy/ecore/configure.in | 330 ++++++++-------- legacy/ecore/src/lib/ecore_evas/Ecore_Evas.h | 14 +- legacy/ecore/src/lib/ecore_evas/ecore_evas.c | 83 ++-- .../src/lib/ecore_evas/ecore_evas_private.h | 48 +-- .../ecore/src/lib/ecore_evas/ecore_evas_x.c | 353 ++++++++++-------- legacy/ecore/src/lib/ecore_x/Makefile.am | 209 ++--------- legacy/ecore/src/lib/ecore_x/xcb/Makefile.am | 81 ++++ .../src/lib/ecore_x/{ => xcb}/ecore_xcb.c | 4 +- .../lib/ecore_x/{ => xcb}/ecore_xcb_atom.c | 0 .../ecore_x/{ => xcb}/ecore_xcb_composite.c | 0 .../lib/ecore_x/{ => xcb}/ecore_xcb_cursor.c | 36 +- .../lib/ecore_x/{ => xcb}/ecore_xcb_damage.c | 0 .../src/lib/ecore_x/{ => xcb}/ecore_xcb_dnd.c | 0 .../lib/ecore_x/{ => xcb}/ecore_xcb_dpms.c | 0 .../ecore_x/{ => xcb}/ecore_xcb_drawable.c | 0 .../src/lib/ecore_x/{ => xcb}/ecore_xcb_e.c | 0 .../lib/ecore_x/{ => xcb}/ecore_xcb_events.c | 26 +- .../lib/ecore_x/{ => xcb}/ecore_xcb_fixes.c | 0 .../src/lib/ecore_x/{ => xcb}/ecore_xcb_gc.c | 0 .../lib/ecore_x/{ => xcb}/ecore_xcb_icccm.c | 0 .../src/lib/ecore_x/{ => xcb}/ecore_xcb_mwm.c | 0 .../lib/ecore_x/{ => xcb}/ecore_xcb_netwm.c | 0 .../lib/ecore_x/{ => xcb}/ecore_xcb_pixmap.c | 0 .../lib/ecore_x/{ => xcb}/ecore_xcb_private.h | 3 +- .../lib/ecore_x/{ => xcb}/ecore_xcb_randr.c | 0 .../lib/ecore_x/{ => xcb}/ecore_xcb_reply.c | 0 .../ecore_x/{ => xcb}/ecore_xcb_screensaver.c | 0 .../ecore_x/{ => xcb}/ecore_xcb_selection.c | 0 .../lib/ecore_x/{ => xcb}/ecore_xcb_shape.c | 0 .../lib/ecore_x/{ => xcb}/ecore_xcb_sync.c | 4 +- .../lib/ecore_x/{ => xcb}/ecore_xcb_window.c | 0 .../ecore_x/{ => xcb}/ecore_xcb_window_prop.c | 0 .../ecore_x/{ => xcb}/ecore_xcb_xinerama.c | 0 legacy/ecore/src/lib/ecore_x/xlib/Makefile.am | 80 ++++ .../src/lib/ecore_x/{ => xlib}/ecore_x.c | 0 .../lib/ecore_x/{ => xlib}/ecore_x_atoms.c | 0 .../ecore_x/{ => xlib}/ecore_x_composite.c | 0 .../lib/ecore_x/{ => xlib}/ecore_x_cursor.c | 0 .../lib/ecore_x/{ => xlib}/ecore_x_damage.c | 0 .../src/lib/ecore_x/{ => xlib}/ecore_x_dnd.c | 0 .../src/lib/ecore_x/{ => xlib}/ecore_x_dpms.c | 0 .../lib/ecore_x/{ => xlib}/ecore_x_drawable.c | 0 .../src/lib/ecore_x/{ => xlib}/ecore_x_e.c | 0 .../lib/ecore_x/{ => xlib}/ecore_x_error.c | 0 .../lib/ecore_x/{ => xlib}/ecore_x_events.c | 0 .../lib/ecore_x/{ => xlib}/ecore_x_fixes.c | 0 .../src/lib/ecore_x/{ => xlib}/ecore_x_gc.c | 0 .../lib/ecore_x/{ => xlib}/ecore_x_icccm.c | 0 .../src/lib/ecore_x/{ => xlib}/ecore_x_mwm.c | 0 .../lib/ecore_x/{ => xlib}/ecore_x_netwm.c | 0 .../lib/ecore_x/{ => xlib}/ecore_x_pixmap.c | 0 .../lib/ecore_x/{ => xlib}/ecore_x_private.h | 0 .../lib/ecore_x/{ => xlib}/ecore_x_randr.c | 0 .../ecore_x/{ => xlib}/ecore_x_screensaver.c | 0 .../ecore_x/{ => xlib}/ecore_x_selection.c | 0 .../src/lib/ecore_x/{ => xlib}/ecore_x_sync.c | 0 .../src/lib/ecore_x/{ => xlib}/ecore_x_test.c | 0 .../lib/ecore_x/{ => xlib}/ecore_x_window.c | 0 .../ecore_x/{ => xlib}/ecore_x_window_prop.c | 0 .../ecore_x/{ => xlib}/ecore_x_window_shape.c | 0 .../lib/ecore_x/{ => xlib}/ecore_x_xinerama.c | 0 61 files changed, 694 insertions(+), 577 deletions(-) create mode 100644 legacy/ecore/src/lib/ecore_x/xcb/Makefile.am rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb.c (99%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_atom.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_composite.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_cursor.c (91%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_damage.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_dnd.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_dpms.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_drawable.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_e.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_events.c (98%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_fixes.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_gc.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_icccm.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_mwm.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_netwm.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_pixmap.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_private.h (98%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_randr.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_reply.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_screensaver.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_selection.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_shape.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_sync.c (92%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_window.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_window_prop.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xcb}/ecore_xcb_xinerama.c (100%) create mode 100644 legacy/ecore/src/lib/ecore_x/xlib/Makefile.am rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_atoms.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_composite.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_cursor.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_damage.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_dnd.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_dpms.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_drawable.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_e.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_error.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_events.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_fixes.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_gc.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_icccm.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_mwm.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_netwm.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_pixmap.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_private.h (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_randr.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_screensaver.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_selection.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_sync.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_test.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_window.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_window_prop.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_window_shape.c (100%) rename legacy/ecore/src/lib/ecore_x/{ => xlib}/ecore_x_xinerama.c (100%) diff --git a/legacy/ecore/configure.in b/legacy/ecore/configure.in index 33ed4d52b9..d494ef68b5 100644 --- a/legacy/ecore/configure.in +++ b/legacy/ecore/configure.in @@ -231,10 +231,18 @@ AC_ARG_ENABLE(simple-x11, [ want_evas_simple_x11=$enableval ] ) -dnl ecore_x{cb} +have_x="no" have_ecore_x="no" +have_ecore_x_xlib="no" have_ecore_x_xcb="no" +x_dir=""; +x_includes=""; +x_cflags=""; +x_libs=""; + +dnl ecore_x{cb} + AC_ARG_ENABLE(ecore-x-xcb, AC_HELP_STRING( [--enable-ecore-x-xcb], @@ -253,83 +261,79 @@ if test "x$want_ecore_x_xcb" = "xyes" ; then if test "x$have_ecore_x_xcb" = "xyes" ; then PKG_CHECK_MODULES(XCB_COMPOSITE, xcb-composite, [ have_ecore_x_xcb_composite="yes" - AC_DEFINE(ECORE_XCB_COMPOSITE, 1, [Build support for XCB composite]) ], + AC_DEFINE(ECORE_XCB_COMPOSITE, 1, [Build support for XCB composite]) ], [ have_ecore_x_xcb_composite="no" ]) PKG_CHECK_MODULES(XCB_DAMAGE, xcb-damage, [ have_ecore_x_xcb_damage="yes" - AC_DEFINE(ECORE_XCB_DAMAGE, 1, [Build support for XCB damage]) ], + 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]) ], + 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]) ], + 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]) ], + 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]) ], + 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]) ], + 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]) ], + 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]) ], + 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]) ], + 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]) ], + AC_DEFINE(ECORE_XCB_XPRINT, 1, [Build support for XCB xprint]) ], [ have_ecore_x_xcb_xprint="no" ]) PKG_CHECK_MODULES(XCB_XTEST, xcb-xtest, [ have_ecore_x_xcb_xtest="yes" - AC_DEFINE(ECORE_XCB_XTEST, 1, [Build support for XCB xtest]) ], + AC_DEFINE(ECORE_XCB_XTEST, 1, [Build support for XCB xtest]) ], [ have_ecore_x_xcb_xtest="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.]) + AC_DEFINE(HAVE_ECORE_X_XCB, 1, [Defined to 1 if XCB is enabled.]) + + x_cflags=$XCB_CFLAGS + x_libs=$XCB_LIBS + have_x="yes" have_ecore_x_xcb_define="-DHAVE_ECORE_X_XCB" - have_ecore_x="yes" AC_SUBST(have_ecore_x_xcb_define) fi fi -x_dir=""; -x_includes=""; -x_cflags=""; -x_libs=""; -if test "x$have_ecore_x_xcb" != "xyes" ; then - have_x="no" +if ! test "x$have_ecore_x_xcb" = "xyes" ; then AC_PATH_XTRA AC_CHECK_HEADER(X11/X.h, [ - have_x="yes" if test "x$want_evas_simple_x11" = "xyes"; then x_libs="${x_libs} -lX11 -lXext" else @@ -337,17 +341,11 @@ if test "x$have_ecore_x_xcb" != "xyes" ; then x_cflags=${x_cflags:--I${x_includes:-$x_dir/include}} x_libs="${x_libs:--L${x_libraries:-$x_dir/lib}} -lX11 -lXext" fi + have_ecore_x_xlib="yes" ] ) - AC_SUBST(x_cflags) - AC_SUBST(x_includes) - AC_SUBST(x_libs) - - ECORE_CHECK_MODULE([X], [yes], [$have_x], - [ecore_x_libs="$ecore_x_libs $x_libs"]) - - if test "x$have_ecore_x" = "xyes"; then + if test "x$have_ecore_x_xlib" = "xyes"; then Xcursor_libs="" Xcursor_cflags="" use_Xcursor="no" @@ -395,108 +393,141 @@ if test "x$have_ecore_x_xcb" != "xyes" ; then ECORE_CHECK_X_EXTENSION([Xrender], [Xrender.h], [Xrender], [XRenderFindVisualFormat]) ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], [XTestFakeKeyEvent]) ECORE_CHECK_X_EXTENSION([Xss], [scrnsaver.h], [Xss], [XScreenSaverSelectInput]) + + AC_DEFINE(HAVE_ECORE_X_XLIB, 1, [Defined to 1 if Xlib is enabled.]) + have_x="yes" + + have_ecore_x_xlib="yes" fi fi +AC_SUBST(x_cflags) +AC_SUBST(x_includes) +AC_SUBST(x_libs) + +ECORE_CHECK_MODULE([X], [yes], [$have_x], + [ecore_x_libs="$ecore_x_libs $x_libs"]) + dnl ecore_evas_x11 -have_ecore_evas_x11="no" -have_ecore_evas_x11_gl="no"; -have_ecore_evas_xrender="no"; -have_ecore_evas_x11_16="no"; +have_ecore_evas_software_x11="no" +have_ecore_evas_xrender_x11="no"; +have_ecore_evas_opengl_x11="no"; +have_ecore_evas_software_xcb="no" +have_ecore_evas_xrender_xcb="no"; +have_ecore_evas_software_16_x11="no"; if test "x$have_ecore_x" = "xyes" -a "x$have_ecore_evas" = "xyes"; then - dnl ecore_evas_x11 - want_ecore_evas_x11=yes - dnl disabling this will make things go haywire - #AC_ARG_ENABLE(ecore-evas-x11, - # AC_HELP_STRING( - # [--enable-ecore-evas-x11], - # [enable X11 support in the ecore_evas module.] - # ), - # [ want_ecore_evas_x11=$enableval ] - #) - AC_MSG_CHECKING(whether ecore_evas x11 support is to be built) - AC_MSG_RESULT($want_ecore_evas_x11) - if test "x$want_ecore_evas_x11" = "xyes"; then - PKG_CHECK_MODULES(EVAS_SOFTWARE_X11, evas-software-x11, [ - AC_DEFINE(BUILD_ECORE_EVAS_X11, 1, [Support for X11 Engine in Ecore_Evas]) - have_ecore_evas_x11="yes"; - ], [ - have_ecore_evas_x11="no"; - ]) - fi + dnl ecore_evas_x Xlib + if test "x$have_ecore_x_xlib" = "xyes"; then + want_ecore_evas_software_x11="yes" + dnl disabling this will make things go haywire + #AC_ARG_ENABLE(ecore-evas-x11, + # AC_HELP_STRING( + # [--enable-ecore-evas-x11], + # [enable X11 support in the ecore_evas module.] + # ), + # [ want_ecore_evas_x11=$enableval ] + #) + AC_MSG_CHECKING(whether ecore_evas Software Xlib support is to be built) + AC_MSG_RESULT($want_ecore_evas_software_x11) - dnl ecore_evas_x11_gl - want_ecore_evas_x11_gl=yes - AC_ARG_ENABLE(ecore-evas-x11-gl, - AC_HELP_STRING( - [--enable-ecore-evas-x11-gl], - [enable X11 GL support in the ecore_evas module.] - ), - [ want_ecore_evas_x11_gl=$enableval ] - ) - AC_MSG_CHECKING(whether ecore_evas x11 gl support is to be built) - AC_MSG_RESULT($want_ecore_evas_x11_gl) + if test "x$want_ecore_evas_software_x11" = "xyes"; then + PKG_CHECK_MODULES(EVAS_SOFTWARE_X11, evas-software-x11, [ + AC_DEFINE(BUILD_ECORE_EVAS_SOFTWARE_X11, 1, [Support for Software Xlib Engine in Ecore_Evas]) + have_ecore_evas_software_x11="yes"; + ], [ + have_ecore_evas_software_x11="no"; + ]) + fi - if test "x$want_ecore_evas_x11_gl" = "xyes"; then - PKG_CHECK_MODULES(EVAS_OPENGL_X11, evas-opengl-x11, [ - AC_DEFINE(BUILD_ECORE_EVAS_X11_GL, 1, [Support for GL Engine in Ecore_Evas]) - have_ecore_evas_x11_gl="yes"; - ], [ - have_ecore_evas_x11_gl="no" - ]) - fi - - dnl ecore_evas_xrender - want_ecore_evas_xrender=yes - AC_ARG_ENABLE(ecore-evas-xrender, - AC_HELP_STRING( - [--disable-ecore-evas-xrender], - [disable XRender support in the ecore_evas module. [[default=enabled]]] - ), - [ want_ecore_evas_xrender=$enableval ] - ) - - AC_MSG_CHECKING(whether ecore_evas xrender support is to be built) - AC_MSG_RESULT($want_ecore_evas_xrender) - - if test "x$want_ecore_evas_xrender" = "xyes"; then - PKG_CHECK_MODULES(EVAS_XRENDER_X11, evas-xrender-x11, [ - AC_DEFINE(BUILD_ECORE_EVAS_XRENDER, 1, [Support for XRender Engine in Ecore_Evas]) - have_ecore_evas_xrender="yes" - ], [ - have_ecore_evas_xrender="no" - ]) - fi - - dnl ecore_evas_x11_16 - want_ecore_evas_x11_16=no - AC_ARG_ENABLE(ecore-evas-x11-16, - AC_HELP_STRING( - [--enable-ecore-evas-x11-16], - [enable 16bpp optimized mode support in the ecore_evas module. [[default=disabled]]] - ), - [ want_ecore_evas_x11_16=$enableval ] - ) - - AC_MSG_CHECKING(whether ecore_evas x11-16 support is to be built) - AC_MSG_RESULT($want_ecore_evas_x11_16) - - if test "x$want_ecore_evas_x11_16" = "xyes"; then - PKG_CHECK_MODULES(EVAS_SOFTWARE_16_X11, evas-software-16-x11, - [ - AC_DEFINE(BUILD_ECORE_EVAS_X11_16, 1, [Support for X11 16bpp Engine in Ecore_Evas]) - have_ecore_evas_x11_16="yes"; - ] + dnl ecore_evas_opengl_x11 + want_ecore_evas_opengl_x11=yes + AC_ARG_ENABLE(ecore-evas-opengl-x11, + AC_HELP_STRING( + [--enable-ecore-evas-opengl-x11], + [enable OpenGL Xlib support in the ecore_evas module.] + ), + [ want_ecore_evas_opengl_x11=$enableval ] ) + AC_MSG_CHECKING(whether ecore_evas OpenGL Xlib support is to be built) + AC_MSG_RESULT($want_ecore_evas_opengl_x11) + + if test "x$want_ecore_evas_opengl_x11" = "xyes"; then + PKG_CHECK_MODULES(EVAS_OPENGL_X11, evas-opengl-x11, [ + AC_DEFINE(BUILD_ECORE_EVAS_OPENGL_X11, 1, [Support for OpenGL Xlib Engine in Ecore_Evas]) + have_ecore_evas_opengl_x11="yes"; + ], [ + have_ecore_evas_opengl_x11="no" + ]) + fi + + dnl ecore_evas_xrender_x11 + want_ecore_evas_xrender_x11="yes" + AC_ARG_ENABLE(ecore-evas-xrender-x11, + AC_HELP_STRING( + [--disable-ecore-evas-xrender-x11], + [disable XRender Xlib support in the ecore_evas module. [[default=enabled]]] + ), + [ want_ecore_evas_xrender_x11=$enableval ] + ) + + AC_MSG_CHECKING(whether ecore_evas XRender Xlib support is to be built) + AC_MSG_RESULT($want_ecore_evas_xrender_x11) + + if test "x$want_ecore_evas_xrender_x11" = "xyes"; then + PKG_CHECK_MODULES(EVAS_XRENDER_X11, evas-xrender-x11, [ + AC_DEFINE(BUILD_ECORE_EVAS_XRENDER_X11, 1, [Support for XRender Xlib Engine in Ecore_Evas]) + have_ecore_evas_xrender_x11="yes" + ], [ + have_ecore_evas_xrender_x11="no" + ]) + fi + + dnl ecore_evas_software_16_x11 + want_ecore_evas_software_16_x11=no + AC_ARG_ENABLE(ecore-evas-software-16-x11, + AC_HELP_STRING( + [--enable-ecore-evas-software-16-x11], + [enable 16bpp optimized mode support in the ecore_evas module. [[default=disabled]]] + ), + [ want_ecore_evas_software_16_x11=$enableval ] + ) + + AC_MSG_CHECKING(whether ecore_evas x11-16 support is to be built) + AC_MSG_RESULT($want_ecore_evas_software_16_x11) + + if test "x$want_ecore_evas_software_16_x11" = "xyes"; then + PKG_CHECK_MODULES(EVAS_SOFTWARE_16_X11, evas-software-16-x11, + [ + AC_DEFINE(BUILD_ECORE_EVAS_SOFTWARE_16_X11, 1, [Support for X11 16bpp Engine in Ecore_Evas]) + have_ecore_evas_software_16_x11="yes"; + ] + ) + fi + else + want_ecore_evas_software_xcb="yes" + ECORE_EVAS_CHECK_MODULE([software-xcb], + [$want_ecore_evas_software_xcb], + [Software XCB], + $have_ecore_x_xcb) + + want_ecore_evas_xrender_xcb="auto" + ECORE_EVAS_CHECK_MODULE([xrender-xcb], + [$want_ecore_evas_xrender_xcb], + [XRender XCB], + $have_ecore_x_xcb) fi - if test "x$have_ecore_evas_x11" = "xyes" -o \ - "x$have_ecore_evas_x11_gl" = "yes" -o \ - "x$have_ecore_evas_xrender" = "yes" -o \ - "x$have_ecore_evas_x11_16" = "yes"; then + if test "x$have_ecore_evas_software_x11" = "xyes" -o \ + "x$have_ecore_evas_opengl_x11" = "yes" -o \ + "x$have_ecore_evas_xrender_x11" = "yes" -o \ + "x$have_ecore_evas_software_16_x11" = "yes" -o \ + "x$have_ecore_evas_software_xcb" = "xyes" -o \ + "x$have_ecore_evas_xrender_xcb" = "yes"; then + AC_DEFINE(BUILD_ECORE_EVAS_X11, 1, [Support for X Window Engines in Ecore_Evas]) requirements_ecore_evas="$requirements_ecore_evas ecore-x" fi + fi dnl ecore_win32 @@ -786,16 +817,9 @@ AC_SUBST(requirements_ecore_x) AC_SUBST(requirements_ecore_sdl) # set up conditionals -AM_CONDITIONAL(BUILD_ECORE_X, test $have_ecore_x = yes -a $have_ecore_x_xcb = no) +AM_CONDITIONAL(BUILD_ECORE_X, test $have_ecore_x = yes) +AM_CONDITIONAL(BUILD_ECORE_X_XLIB, test $have_ecore_x_xlib = yes) AM_CONDITIONAL(BUILD_ECORE_X_XCB, test $have_ecore_x_xcb = yes) -AM_CONDITIONAL(BUILD_ECORE_EVAS_SDL, test $have_ecore_evas_sdl = yes) -AM_CONDITIONAL(BUILD_ECORE_EVAS_X11, test $have_ecore_evas_x11 = yes) -AM_CONDITIONAL(BUILD_ECORE_EVAS_X11_GL, test $have_ecore_evas_x11_gl = yes) -AM_CONDITIONAL(BUILD_ECORE_EVAS_XRENDER, test $have_ecore_evas_xrender = yes) -AM_CONDITIONAL(BUILD_ECORE_EVAS_X11_16, test $have_ecore_evas_x11_16 = yes) -AM_CONDITIONAL(BUILD_ECORE_EVAS_DIRECTFB, test $have_ecore_evas_dfb = yes) -AM_CONDITIONAL(BUILD_ECORE_EVAS_FB, test $have_ecore_evas_fb = yes) -AM_CONDITIONAL(BUILD_ECORE_EVAS_BUFFER, test $have_ecore_evas_buffer = yes) AC_OUTPUT([ Makefile @@ -822,6 +846,8 @@ src/lib/Makefile src/lib/ecore/Makefile src/lib/ecore_job/Makefile src/lib/ecore_x/Makefile +src/lib/ecore_x/xlib/Makefile +src/lib/ecore_x/xcb/Makefile src/lib/ecore_fb/Makefile src/lib/ecore_sdl/Makefile src/lib/ecore_evas/Makefile @@ -873,22 +899,22 @@ echo echo " Graphic systems:" echo -if test "x$have_ecore_x_xcb" = "xyes" ; then - echo " Ecore_X (XCB backend)........: $have_ecore_x_xcb" - echo " Xprint.....................: $have_ecore_x_xcb_xprint" - echo " Xinerama...................: $have_ecore_x_xcb_xinerama" - echo " Xrandr.....................: $have_ecore_x_xcb_randr" - echo " Xscreensaver...............: $have_ecore_x_xcb_screensaver" - echo " Xshape.....................: $have_ecore_x_xcb_shape" - echo " Xsync......................: $have_ecore_x_xcb_sync" - echo " Xrender....................: $have_ecore_x_xcb_render" - echo " Xcomposite.................: $have_ecore_x_xcb_composite" - echo " Xfixes.....................: $have_ecore_x_xcb_xfixes" - echo " Xdamage....................: $have_ecore_x_xcb_damage" - echo " Xdpms......................: $have_ecore_x_xcb_dpms" - echo " Xtest......................: $have_ecore_x_xcb_xtest" -else - if test "x$have_ecore_x" = "xyes" ; then +if test "x$have_ecore_x" = "xyes" ; then + if test "x$have_ecore_x_xcb" = "xyes" ; then + echo " Ecore_X (XCB backend)........: $have_ecore_x_xcb" + echo " Xprint.....................: $have_ecore_x_xcb_xprint" + echo " Xinerama...................: $have_ecore_x_xcb_xinerama" + echo " Xrandr.....................: $have_ecore_x_xcb_randr" + echo " Xscreensaver...............: $have_ecore_x_xcb_screensaver" + echo " Xshape.....................: $have_ecore_x_xcb_shape" + echo " Xsync......................: $have_ecore_x_xcb_sync" + echo " Xrender....................: $have_ecore_x_xcb_render" + echo " Xcomposite.................: $have_ecore_x_xcb_composite" + echo " Xfixes.....................: $have_ecore_x_xcb_xfixes" + echo " Xdamage....................: $have_ecore_x_xcb_damage" + echo " Xdpms......................: $have_ecore_x_xcb_dpms" + echo " Xtest......................: $have_ecore_x_xcb_xtest" + else echo " Ecore_X (Xlib backend).......: $have_ecore_x" echo " Xcursor....................: $use_Xcursor" echo " Xprint.....................: $use_xprint" @@ -901,9 +927,9 @@ else echo " Xdamage....................: $use_xdamage" echo " Xdpms......................: $use_xdpms" echo " Xtest......................: $use_xtest" - else - echo " Ecore_X......................: $have_ecore_x" fi +else + echo " Ecore_X......................: $have_ecore_x" fi echo " Ecore_Win32..................: $have_ecore_win32" echo " Ecore_SDL....................: $have_ecore_sdl" @@ -918,16 +944,18 @@ echo echo " Ecore_Evas...................: $have_ecore_evas" if test "x$have_ecore_evas" = "xyes" ; then echo " Software Memory Buffer.....: $have_ecore_evas_buffer" - echo " Software X11...............: $have_ecore_evas_x11" - echo " XRender X11................: $have_ecore_evas_xrender" - echo " OpenGL X11.................: $have_ecore_evas_x11_gl" + echo " Software X11...............: $have_ecore_evas_software_x11" + echo " XRender X11................: $have_ecore_evas_xrender_x11" + echo " OpenGL X11.................: $have_ecore_evas_opengl_x11" + echo " Software XCB...............: $have_ecore_evas_software_xcb" + echo " XRender XCB................: $have_ecore_evas_xrender_xcb" echo " Software DirectDraw........: $have_ecore_evas_software_ddraw" echo " Direct3D...................: $have_ecore_evas_direct3d" echo " OpenGL Glew................: $have_ecore_evas_opengl_glew" echo " Software SDL...............: $have_ecore_evas_sdl" echo " DirectFB...................: $have_ecore_evas_dfb" echo " Software Framebuffer.......: $have_ecore_evas_fb" - echo " Software 16bit X11.........: $have_ecore_evas_x11_16" + echo " Software 16bit X11.........: $have_ecore_evas_software_16_x11" echo " Software 16bit DirectDraw..: $have_ecore_evas_software_16_ddraw" echo " Software 16bit WinCE.......: $have_ecore_evas_software_16_wince" fi diff --git a/legacy/ecore/src/lib/ecore_evas/Ecore_Evas.h b/legacy/ecore/src/lib/ecore_evas/Ecore_Evas.h index f760bd99da..e8125b0c2b 100644 --- a/legacy/ecore/src/lib/ecore_evas/Ecore_Evas.h +++ b/legacy/ecore/src/lib/ecore_evas/Ecore_Evas.h @@ -68,18 +68,20 @@ extern "C" { typedef enum _Ecore_Evas_Engine_Type { - ECORE_EVAS_ENGINE_SOFTWARE_X11, - ECORE_EVAS_ENGINE_SOFTWARE_FB, - ECORE_EVAS_ENGINE_GL_X11, ECORE_EVAS_ENGINE_SOFTWARE_BUFFER, + ECORE_EVAS_ENGINE_SOFTWARE_X11, ECORE_EVAS_ENGINE_XRENDER_X11, - ECORE_EVAS_ENGINE_DIRECTFB, - ECORE_EVAS_ENGINE_SOFTWARE_X11_16, + ECORE_EVAS_ENGINE_OPENGL_X11, + ECORE_EVAS_ENGINE_SOFTWARE_XCB, + ECORE_EVAS_ENGINE_XRENDER_XCB, ECORE_EVAS_ENGINE_SOFTWARE_DDRAW, - ECORE_EVAS_ENGINE_SOFTWARE_16_DDRAW, ECORE_EVAS_ENGINE_DIRECT3D, ECORE_EVAS_ENGINE_OPENGL_GLEW, ECORE_EVAS_ENGINE_SDL, + ECORE_EVAS_ENGINE_DIRECTFB, + ECORE_EVAS_ENGINE_SOFTWARE_FB, + ECORE_EVAS_ENGINE_SOFTWARE_16_X11, + ECORE_EVAS_ENGINE_SOFTWARE_16_DDRAW, ECORE_EVAS_ENGINE_SOFTWARE_16_WINCE, } Ecore_Evas_Engine_Type; diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas.c index 95df6f4de3..c49b9166cc 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas.c @@ -23,45 +23,38 @@ ecore_evas_engine_type_supported_get(Ecore_Evas_Engine_Type engine) { switch (engine) { - case ECORE_EVAS_ENGINE_SOFTWARE_X11: -#ifdef BUILD_ECORE_EVAS_X11 - return 1; -#else - return 0; -#endif - case ECORE_EVAS_ENGINE_SOFTWARE_FB: -#ifdef BUILD_ECORE_EVAS_FB - return 1; -#else - return 0; -#endif - case ECORE_EVAS_ENGINE_GL_X11: -#ifdef BUILD_ECORE_EVAS_X11_GL - return 1; -#else - return 0; -#endif - case ECORE_EVAS_ENGINE_XRENDER_X11: -#ifdef BUILD_ECORE_EVAS_XRENDER - return 1; -#else - return 0; -#endif - - case ECORE_EVAS_ENGINE_SOFTWARE_X11_16: -#ifdef BUILD_ECORE_EVAS_X11_16 - return 1; -#else - return 0; -#endif case ECORE_EVAS_ENGINE_SOFTWARE_BUFFER: #ifdef BUILD_ECORE_EVAS_BUFFER return 1; #else return 0; #endif - case ECORE_EVAS_ENGINE_DIRECTFB: -#ifdef BUILD_ECORE_EVAS_DIRECTFB + case ECORE_EVAS_ENGINE_SOFTWARE_X11: +#ifdef BUILD_ECORE_EVAS_SOFTWARE_X11 + return 1; +#else + return 0; +#endif + case ECORE_EVAS_ENGINE_XRENDER_X11: +#ifdef BUILD_ECORE_EVAS_XRENDER_X11 + return 1; +#else + return 0; +#endif + case ECORE_EVAS_ENGINE_OPENGL_X11: +#ifdef BUILD_ECORE_EVAS_OPENGL_X11 + return 1; +#else + return 0; +#endif + case ECORE_EVAS_ENGINE_SOFTWARE_XCB: +#ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB + return 1; +#else + return 0; +#endif + case ECORE_EVAS_ENGINE_XRENDER_XCB: +#ifdef BUILD_ECORE_EVAS_XRENDER_XCB return 1; #else return 0; @@ -89,6 +82,25 @@ ecore_evas_engine_type_supported_get(Ecore_Evas_Engine_Type engine) return 1; #else return 0; +#endif + case ECORE_EVAS_ENGINE_DIRECTFB: +#ifdef BUILD_ECORE_EVAS_DIRECTFB + return 1; +#else + return 0; +#endif + case ECORE_EVAS_ENGINE_SOFTWARE_FB: +#ifdef BUILD_ECORE_EVAS_FB + return 1; +#else + return 0; +#endif + + case ECORE_EVAS_ENGINE_SOFTWARE_16_X11: +#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_X11 + return 1; +#else + return 0; #endif case ECORE_EVAS_ENGINE_SOFTWARE_16_DDRAW: #ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW @@ -138,6 +150,9 @@ ecore_evas_shutdown(void) #ifdef BUILD_ECORE_EVAS_X11 while (_ecore_evas_x_shutdown()); #endif +#ifdef BUILD_ECORE_EVAS_WIN32 + while (_ecore_evas_win32_shutdown()); +#endif #ifdef BUILD_ECORE_EVAS_FB while (_ecore_evas_fb_shutdown()); #endif @@ -147,7 +162,7 @@ ecore_evas_shutdown(void) #ifdef BUILD_ECORE_EVAS_DIRECTFB while (_ecore_evas_directfb_shutdown()); #endif -#ifdef BUILD_ECORE_EVAS_WINCE +#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE while (_ecore_evas_wince_shutdown()); #endif evas_shutdown(); diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_private.h b/legacy/ecore/src/lib/ecore_evas/ecore_evas_private.h index b52a6aa2e3..49d3338e5e 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_private.h +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_private.h @@ -23,63 +23,69 @@ #define ECORE_MAGIC_EVAS 0x76543211 #ifndef BUILD_ECORE_DIRECTFB -#undef BUILD_ECORE_EVAS_DIRECTFB +# undef BUILD_ECORE_EVAS_DIRECTFB #endif #ifdef BUILD_ECORE_EVAS_X11 # include "Ecore_X.h" # ifdef HAVE_ECORE_X_XCB -# include # include -# ifdef ECORE_XCB_RENDER -# include +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB +# include # endif -# ifdef BUILD_ECORE_EVAS_XRENDER +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB +# include # include # endif -# else -# include +# endif +# ifdef HAVE_ECORE_X_XLIB # include # include -# ifdef ECORE_XRENDER +# ifdef BUILD_ECORE_EVAS_SOFTWARE_X11 +# include +# endif +# ifdef BUILD_ECORE_EVAS_XRENDER_X11 # include -# endif -# ifdef BUILD_ECORE_EVAS_X11_GL -# include -# endif -# ifdef BUILD_ECORE_EVAS_XRENDER # include # endif +# ifdef BUILD_ECORE_EVAS_OPENGL_X11 +# include +# endif # ifdef BUILD_ECORE_EVAS_X11_16 # include # endif -# endif /* HAVE_ECORE_X_XCB */ +# endif #endif + #ifdef BUILD_ECORE_EVAS_FB # include #endif + #ifdef BUILD_ECORE_EVAS_DIRECTFB # include # include "Ecore_DirectFB.h" #endif + #ifdef BUILD_ECORE_EVAS_BUFFER # include #endif + #ifdef BUILD_ECORE_EVAS_WIN32 # include "Ecore_Win32.h" # ifdef BUILD_ECORE_EVAS_SOFTWARE_DDRAW # include # endif -# ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW -# include -# endif # ifdef BUILD_ECORE_EVAS_DIRECT3D # include # endif # ifdef BUILD_ECORE_EVAS_OPENGL_GLEW # include # endif +# ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW +# include +# endif #endif + #ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE # include "Ecore_WinCE.h" # include @@ -146,7 +152,7 @@ struct _Ecore_Evas_Engine { Ecore_Evas_Engine_Func *func; -#ifdef BUILD_ECORE_EVAS_X11 +#if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_SOFTWARE_XCB) struct { Ecore_X_Window win_root; Ecore_X_Window win; @@ -154,11 +160,11 @@ struct _Ecore_Evas_Engine Ecore_X_Pixmap pmap; Ecore_X_Pixmap mask; Ecore_X_GC gc; -#ifdef HAVE_ECORE_X_XCB -#warning [XCB] No Region code +#ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB +# warning [XCB] No Region code #else Region damages; -#endif /* HAVE_ECORE_X_XCB */ +#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ int px, py, pw, ph; unsigned char direct_resize : 1; unsigned char using_bg_pixmap : 1; diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c index 8215daa0b8..fcacd8eea4 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c @@ -2,7 +2,7 @@ * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 */ -#ifdef _HAVE_CONFIG_H +#ifdef HAVE_CONFIG_H # include "config.h" #endif @@ -49,9 +49,9 @@ xcb_visualtype_get(xcb_screen_t *screen, xcb_visualid_t visual) return NULL; } -#endif /* HAVE_ECORE_X_XCB*/ +#endif /* HAVE_ECORE_X_XCB */ -#ifdef BUILD_ECORE_EVAS_X11_GL +#ifdef BUILD_ECORE_EVAS_OPENGL_X11 # ifdef HAVE_ECORE_X_XCB /* noop */ # else @@ -426,10 +426,10 @@ _ecore_evas_x_match(Ecore_X_Window win) static void _ecore_evas_x_resize_shape(Ecore_Evas *ee) { - if (!strcmp(ee->driver, "software_x11")) + if (!strcmp(ee->driver, "software_x11") || !strcmp(ee->driver, "software_xcb")) { -#ifdef BUILD_ECORE_EVAS_X11 -# ifdef HAVE_ECORE_X_XCB +#if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_SOFTWARE_XCB) +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB Evas_Engine_Info_Software_Xcb *einfo; einfo = (Evas_Engine_Info_Software_Xcb *)evas_engine_info_get(ee->evas); @@ -437,21 +437,21 @@ _ecore_evas_x_resize_shape(Ecore_Evas *ee) Evas_Engine_Info_Software_X11 *einfo; einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(ee->evas); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ if (einfo) { -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB xcb_rectangle_t rectangle; Ecore_X_GC gc; uint32_t value_list; # else GC gc; XGCValues gcv; -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ if (ee->engine.x.mask) ecore_x_pixmap_del(ee->engine.x.mask); ee->engine.x.mask = ecore_x_pixmap_new(ee->engine.x.win, ee->w, ee->h, 1); -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB gc = xcb_generate_id(ecore_x_connection_get()); value_list = 0; xcb_create_gc(ecore_x_connection_get(), gc, ee->engine.x.mask, @@ -471,17 +471,17 @@ _ecore_evas_x_resize_shape(Ecore_Evas *ee) XFillRectangle(ecore_x_display_get(), ee->engine.x.mask, gc, 0, 0, ee->w, ee->h); XFreeGC(ecore_x_display_get(), gc); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ einfo->info.mask = ee->engine.x.mask; evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h); } -#endif /* BUILD_ECORE_EVAS_X11 */ +#endif /* BUILD_ECORE_EVAS_SOFTWARE_X11 || BUILD_ECORE_EVAS_SOFTWARE_XCB */ } - else if (!strcmp(ee->driver, "xrender_x11")) + else if (!strcmp(ee->driver, "xrender_x11") || !strcmp(ee->driver, "xrender_xcb")) { -#ifdef BUILD_ECORE_EVAS_XRENDER -# ifdef HAVE_ECORE_X_XCB +#if defined (BUILD_ECORE_EVAS_XRENDER_X11) || defined (BUILD_ECORE_EVAS_XRENDER_XCB) +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB Evas_Engine_Info_XRender_Xcb *einfo; einfo = (Evas_Engine_Info_XRender_Xcb *)evas_engine_info_get(ee->evas); @@ -489,21 +489,21 @@ _ecore_evas_x_resize_shape(Ecore_Evas *ee) Evas_Engine_Info_XRender_X11 *einfo; einfo = (Evas_Engine_Info_XRender_X11 *)evas_engine_info_get(ee->evas); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ if (einfo) { -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB xcb_rectangle_t rectangle; Ecore_X_GC gc; uint32_t value_list; # else GC gc; XGCValues gcv; -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ if (ee->engine.x.mask) ecore_x_pixmap_del(ee->engine.x.mask); ee->engine.x.mask = ecore_x_pixmap_new(ee->engine.x.win, ee->w, ee->h, 1); -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB gc = xcb_generate_id(ecore_x_connection_get()); value_list = 0; xcb_create_gc(ecore_x_connection_get(), gc, ee->engine.x.mask, @@ -523,18 +523,18 @@ _ecore_evas_x_resize_shape(Ecore_Evas *ee) XFillRectangle(ecore_x_display_get(), ee->engine.x.mask, gc, 0, 0, ee->w, ee->h); XFreeGC(ecore_x_display_get(), gc); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ einfo->info.mask = ee->engine.x.mask; evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h); } -#endif /* BUILD_ECORE_EVAS_XRENDER */ +#endif /* BUILD_ECORE_EVAS_XRENDER_X11 || BUILD_ECORE_EVAS_XRENDER_XCB */ } else if (!strcmp(ee->driver, "software_16_x11")) { -#if BUILD_ECORE_EVAS_X11_16 -#if 0 /* XXX no shaped window support for software_16_x11 */ +#if BUILD_ECORE_EVAS_SOFTWARE_16_X11 +# if 0 /* XXX no shaped window support for software_16_x11 */ Evas_Engine_Info_Software_16_X11 *einfo; einfo = (Evas_Engine_Info_Software_16_X11 *)evas_engine_info_get(ee->evas); @@ -549,8 +549,8 @@ _ecore_evas_x_resize_shape(Ecore_Evas *ee) evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h); } -#endif /* XXX no shaped window support for software_16_x11 */ -#endif /* BUILD_ECORE_EVAS_X11_16 */ +# endif /* XXX no shaped window support for software_16_x11 */ +#endif /* BUILD_ECORE_EVAS_SOFTWARE_16_X11 */ } } @@ -962,7 +962,7 @@ _ecore_evas_x_event_window_damage(void *data __UNUSED__, int type __UNUSED__, vo if (ee->prop.avoid_damage) { #ifdef HAVE_ECORE_X_XCB -#warning [XCB] No Region code +# warning [XCB] No Region code #else XRectangle xr; Region tmpr; @@ -991,7 +991,7 @@ _ecore_evas_x_event_window_damage(void *data __UNUSED__, int type __UNUSED__, vo XDestroyRegion(ee->engine.x.damages); ee->engine.x.damages = tmpr; */ -#endif /* HAVE_ECORE_X_XCB */ +#endif /* ! HAVE_ECORE_X_XCB */ } else { @@ -1365,18 +1365,18 @@ _ecore_evas_x_free(Ecore_Evas *ee) if (ee->engine.x.mask) ecore_x_pixmap_del(ee->engine.x.mask); if (ee->engine.x.gc) ecore_x_gc_del(ee->engine.x.gc); #ifdef HAVE_ECORE_X_XCB -#warning [XCB] No Region code +# warning [XCB] No Region code #else if (ee->engine.x.damages) XDestroyRegion(ee->engine.x.damages); -#endif /* HAVE_ECORE_X_XCB */ +#endif /* ! HAVE_ECORE_X_XCB */ ee->engine.x.pmap = 0; ee->engine.x.mask = 0; ee->engine.x.gc = 0; #ifdef HAVE_ECORE_X_XCB -#warning [XCB] No Region code +# warning [XCB] No Region code #else ee->engine.x.damages = 0; -#endif /* HAVE_ECORE_X_XCB */ +#endif /* ! HAVE_ECORE_X_XCB */ ecore_evases_hash = evas_hash_del(ecore_evases_hash, _ecore_evas_x_winid_str_get(ee->engine.x.win), ee); while (ee->engine.x.win_extra) { @@ -1634,27 +1634,28 @@ _ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation) { if (ee->rotation == rotation) return; if (!strcmp(ee->driver, "gl_x11")) return; - if (!strcmp(ee->driver, "software_x11")) + if (!strcmp(ee->driver, "xrender_x11")) return; + if (!strcmp(ee->driver, "software_x11") || !strcmp(ee->driver, "software_xcb")) { -#ifdef BUILD_ECORE_EVAS_X11 -# ifdef HAVE_ECORE_X_XCB +#if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_SOFTWARE_XCB) +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB Evas_Engine_Info_Software_Xcb *einfo; einfo = (Evas_Engine_Info_Software_Xcb *)evas_engine_info_get(ee->evas); -#else +# else Evas_Engine_Info_Software_X11 *einfo; einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(ee->evas); -#endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ if (!einfo) return; einfo->info.rotation = rotation; _ecore_evas_x_rotation_set_internal (ee, rotation, (Evas_Engine_Info *)einfo); -#endif /* BUILD_ECORE_EVAS_X11 */ +#endif /* BUILD_ECORE_EVAS_SOFTWARE_X11 || BUILD_ECORE_EVAS_SOFTWARE_XCB */ } else if (!strcmp(ee->driver, "software_16_x11")) { -#if BUILD_ECORE_EVAS_X11_16 +#if BUILD_ECORE_EVAS_SOFTWARE_16_X11 Evas_Engine_Info_Software_16_X11 *einfo; einfo = (Evas_Engine_Info_Software_16_X11 *)evas_engine_info_get(ee->evas); @@ -1662,7 +1663,7 @@ _ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation) einfo->info.rotation = rotation; _ecore_evas_x_rotation_set_internal (ee, rotation, (Evas_Engine_Info *)einfo); -#endif /* BUILD_ECORE_EVAS_X11_16 */ +#endif /* BUILD_ECORE_EVAS_SOFTWARE_16_X11 */ } } @@ -1671,36 +1672,37 @@ _ecore_evas_x_shaped_set(Ecore_Evas *ee, int shaped) { if (((ee->shaped) && (shaped)) || ((!ee->shaped) && (!shaped))) return; - if (!strcmp(ee->driver, "software_x11")) + if (!strcmp(ee->driver, "gl_x11")) return; + if (!strcmp(ee->driver, "software_x11") || !strcmp(ee->driver, "software_xcb")) { -#ifdef BUILD_ECORE_EVAS_X11 -# ifdef HAVE_ECORE_X_XCB +#if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_SOFTWARE_XCB) +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB Evas_Engine_Info_Software_Xcb *einfo; einfo = (Evas_Engine_Info_Software_Xcb *)evas_engine_info_get(ee->evas); -#else +# else Evas_Engine_Info_Software_X11 *einfo; einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(ee->evas); -#endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ ee->shaped = shaped; if (einfo) { if (ee->shaped) { -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB xcb_rectangle_t rectangle; Ecore_X_GC gc; uint32_t value_list; -#else +# else GC gc; XGCValues gcv; -#endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ if (!ee->engine.x.mask) ee->engine.x.mask = ecore_x_pixmap_new(ee->engine.x.win, ee->w, ee->h, 1); -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB gc = xcb_generate_id(ecore_x_connection_get()); value_list = 0; xcb_create_gc(ecore_x_connection_get(), @@ -1723,7 +1725,7 @@ _ecore_evas_x_shaped_set(Ecore_Evas *ee, int shaped) XFillRectangle(ecore_x_display_get(), ee->engine.x.mask, gc, 0, 0, ee->w, ee->h); XFreeGC(ecore_x_display_get(), gc); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ einfo->info.mask = ee->engine.x.mask; evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h); @@ -1739,39 +1741,39 @@ _ecore_evas_x_shaped_set(Ecore_Evas *ee, int shaped) ecore_x_window_shape_input_mask_set(ee->engine.x.win, 0); } } -#endif /* BUILD_ECORE_EVAS_X11 */ +#endif /* BUILD_ECORE_EVAS_SOFTWARE_X11 || BUILD_ECORE_EVAS_SOFTWARE_XCB */ } - else if (!strcmp(ee->driver, "xrender_x11")) + else if (!strcmp(ee->driver, "xrender_x11") || !strcmp(ee->driver, "xrender_xcb")) { -#ifdef BUILD_ECORE_EVAS_XRENDER -# ifdef HAVE_ECORE_X_XCB +#if defined (BUILD_ECORE_EVAS_XRENDER_X11) || defined (BUILD_ECORE_EVAS_XRENDER_XCB) +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB Evas_Engine_Info_XRender_Xcb *einfo; # else Evas_Engine_Info_XRender_X11 *einfo; -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ ee->shaped = shaped; -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB einfo = (Evas_Engine_Info_XRender_Xcb *)evas_engine_info_get(ee->evas); # else einfo = (Evas_Engine_Info_XRender_X11 *)evas_engine_info_get(ee->evas); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ if (einfo) { if (ee->shaped) { -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB xcb_rectangle_t rectangle; Ecore_X_GC gc; uint32_t value_list; # else GC gc; XGCValues gcv; -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ if (!ee->engine.x.mask) ee->engine.x.mask = ecore_x_pixmap_new(ee->engine.x.win, ee->w, ee->h, 1); -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB gc = xcb_generate_id(ecore_x_connection_get()); value_list = 0; xcb_create_gc(ecore_x_connection_get(), @@ -1794,7 +1796,7 @@ _ecore_evas_x_shaped_set(Ecore_Evas *ee, int shaped) XFillRectangle(ecore_x_display_get(), ee->engine.x.mask, gc, 0, 0, ee->w, ee->h); XFreeGC(ecore_x_display_get(), gc); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ einfo->info.mask = ee->engine.x.mask; evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h); @@ -1810,12 +1812,12 @@ _ecore_evas_x_shaped_set(Ecore_Evas *ee, int shaped) ecore_x_window_shape_input_mask_set(ee->engine.x.win, 0); } } -#endif +#endif /* BUILD_ECORE_EVAS_XRENDER_X11 || BUILD_ECORE_EVAS_XRENDER_XCB */ } else if (!strcmp(ee->driver, "software_16_x11")) { -#if BUILD_ECORE_EVAS_X11_16 -#if 0 /* XXX no shaped window support for software_16_x11 */ +#if BUILD_ECORE_EVAS_SOFTWARE_16_X11 +# if 0 /* XXX no shaped window support for software_16_x11 */ Evas_Engine_Info_Software_16_X11 *einfo; einfo = (Evas_Engine_Info_Software_16_X11 *)evas_engine_info_get(ee->evas); @@ -1841,8 +1843,8 @@ _ecore_evas_x_shaped_set(Ecore_Evas *ee, int shaped) ecore_x_window_shape_mask_set(ee->engine.x.win, 0); } } -#endif /* XXX no shaped window support for software_16_x11 */ -#endif /* BUILD_ECORE_EVAS_X11_16 */ +# endif /* XXX no shaped window support for software_16_x11 */ +#endif /* BUILD_ECORE_EVAS_SOFTWARE_16_X11 */ } } @@ -1858,15 +1860,15 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) xcb_get_window_attributes_reply_t *reply_attr; #else XWindowAttributes att; -#endif /* HAVE_ECORE_X_XCB */ +#endif /* ! HAVE_ECORE_X_XCB */ if (((ee->alpha) && (alpha)) || ((!ee->alpha) && (!alpha))) return; - if (!strcmp(ee->driver, "software_x11")) + if (!strcmp(ee->driver, "software_x11") || !strcmp(ee->driver, "software_xcb")) { -#ifdef BUILD_ECORE_EVAS_X11 -# ifdef HAVE_ECORE_X_XCB +#if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_SOFTWARE_XCB) +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB Evas_Engine_Info_Software_Xcb *einfo; einfo = (Evas_Engine_Info_Software_Xcb *)evas_engine_info_get(ee->evas); @@ -1874,7 +1876,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) Evas_Engine_Info_Software_X11 *einfo; einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(ee->evas); -#endif /* HAVE_ECORE_X_XCB */ +#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ if (!einfo) return; @@ -1906,7 +1908,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) einfo->info.destination_alpha = alpha; -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB cookie_geom = xcb_get_geometry_unchecked(ecore_x_connection_get(), ee->engine.x.win); cookie_attr = xcb_get_window_attributes_unchecked(ecore_x_connection_get(), ee->engine.x.win); @@ -1922,7 +1924,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) einfo->info.visual = att.visual; einfo->info.colormap = att.colormap; einfo->info.depth = att.depth; -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ // if (ee->engine.x.mask) ecore_x_pixmap_del(ee->engine.x.mask); // ee->engine.x.mask = 0; @@ -1941,12 +1943,12 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) ecore_x_icccm_title_set(ee->engine.x.win, ee->prop.title); ecore_x_netwm_name_set(ee->engine.x.win, ee->prop.title); } -#endif /* BUILD_ECORE_EVAS_X11 */ +#endif /* BUILD_ECORE_EVAS_SOFTWARE_X11 || BUILD_ECORE_EVAS_SOFTWARE_XCB */ } - else if (!strcmp(ee->driver, "xrender_x11")) + else if (!strcmp(ee->driver, "xrender_x11") || !strcmp(ee->driver, "xrender_xcb")) { -#ifdef BUILD_ECORE_EVAS_XRENDER -# ifdef HAVE_ECORE_X_XCB +#if defined (BUILD_ECORE_EVAS_XRENDER_X11) || defined (BUILD_ECORE_EVAS_XRENDER_XCB) +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB Evas_Engine_Info_XRender_Xcb *einfo; einfo = (Evas_Engine_Info_XRender_Xcb *)evas_engine_info_get(ee->evas); @@ -1954,7 +1956,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) Evas_Engine_Info_XRender_X11 *einfo; einfo = (Evas_Engine_Info_XRender_X11 *)evas_engine_info_get(ee->evas); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ if (!einfo) return; if (!ecore_x_composite_query()) return; @@ -1985,7 +1987,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) einfo->info.destination_alpha = alpha; -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB cookie_attr = xcb_get_window_attributes_unchecked(ecore_x_connection_get(), ee->engine.x.win); reply_attr = xcb_get_window_attributes_reply(ecore_x_connection_get(), cookie_attr, NULL); @@ -1994,7 +1996,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) # else XGetWindowAttributes(ecore_x_display_get(), ee->engine.x.win, &att); einfo->info.visual = att.visual; -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ // if (ee->engine.x.mask) ecore_x_pixmap_del(ee->engine.x.mask); // ee->engine.x.mask = 0; @@ -2013,11 +2015,11 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) ecore_x_icccm_title_set(ee->engine.x.win, ee->prop.title); ecore_x_netwm_name_set(ee->engine.x.win, ee->prop.title); } -#endif +#endif /* BUILD_ECORE_EVAS_XRENDER_X11 || BUILD_ECORE_EVAS_XRENDER_XCB */ } else if (!strcmp(ee->driver, "software_16_x11")) { -#if BUILD_ECORE_EVAS_X11_16 +#if BUILD_ECORE_EVAS_SOFTWARE_16_X11 Evas_Engine_Info_Software_16_X11 *einfo; einfo = (Evas_Engine_Info_Software_16_X11 *)evas_engine_info_get(ee->evas); @@ -2047,15 +2049,15 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) ecore_x_window_shape_input_mask_set(ee->engine.x.win, 0); } -#if 0 /* XXX no alpha window support for software_16_x11 */ +# if 0 /* XXX no alpha window support for software_16_x11 */ einfo->info.destination_alpha = alpha; -#endif /* XXX no alpha window support for software_16_x11 */ +# endif /* XXX no alpha window support for software_16_x11 */ -#if 0 /* XXX no shaped window support for software_16_x11 */ +# if 0 /* XXX no shaped window support for software_16_x11 */ // if (ee->engine.x.mask) ecore_x_pixmap_del(ee->engine.x.mask); // ee->engine.x.mask = 0; einfo->info.mask = ee->engine.x.mask; -#endif /* XXX no shaped window support for software_16_x11 */ +# endif /* XXX no shaped window support for software_16_x11 */ einfo->info.drawable = ee->engine.x.win; evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); @@ -2071,19 +2073,19 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) ecore_x_icccm_title_set(ee->engine.x.win, ee->prop.title); ecore_x_netwm_name_set(ee->engine.x.win, ee->prop.title); } -#endif /* BUILD_ECORE_EVAS_X11_16 */ +#endif /* BUILD_ECORE_EVAS_SOFTWARE_16_X11 */ } } -#endif +#endif /* BUILD_ECORE_EVAS_X11 */ static void * _ecore_evas_x_window_get(Ecore_Evas *ee) { #ifdef BUILD_ECORE_EVAS_X11 - return (void *) ee->engine.x.win; + return (void *) (long)ee->engine.x.win; #else return 0; -#endif +#endif /* BUILD_ECORE_EVAS_X11 */ } #ifdef BUILD_ECORE_EVAS_X11 @@ -2384,7 +2386,7 @@ _ecore_evas_x_reinit_win(Ecore_Evas *ee) } else if (!strcmp(ee->driver, "xrender_x11")) { -#ifdef BUILD_ECORE_EVAS_XRENDER +#ifdef BUILD_ECORE_EVAS_XRENDER_X11 Evas_Engine_Info_XRender_X11 *einfo; einfo = (Evas_Engine_Info_XRender_X11 *)evas_engine_info_get(ee->evas); @@ -2397,7 +2399,7 @@ _ecore_evas_x_reinit_win(Ecore_Evas *ee) } else if (!strcmp(ee->driver, "gl_x11")) { -#ifdef BUILD_ECORE_EVAS_X11_GL +#ifdef BUILD_ECORE_EVAS_OPENGL_X11 Evas_Engine_Info_GL_X11 *einfo; einfo = (Evas_Engine_Info_GL_X11 *)evas_engine_info_get(ee->evas); @@ -2444,21 +2446,23 @@ _ecore_evas_x_avoid_damage_set(Ecore_Evas *ee, int on) { if (ee->prop.avoid_damage == on) return; if (!strcmp(ee->driver, "gl_x11")) return; + if (!strcmp(ee->driver, "xrender_x11")) return; if ((!strcmp(ee->driver, "software_x11")) || (!strcmp(ee->driver, "software_xcb"))) { -#ifdef HAVE_ECORE_X_XCB +#if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_SOFTWARE_XCB) +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB Evas_Engine_Info_Software_Xcb *einfo; -#else +# else Evas_Engine_Info_Software_X11 *einfo; -#endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ ee->prop.avoid_damage = on; -#ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB einfo = (Evas_Engine_Info_Software_Xcb *)evas_engine_info_get(ee->evas); -#else +# else einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(ee->evas); -#endif /* HAVE_ECORE_X_XCB */ +# endif /* !BUILD_ECORE_EVAS_SOFTWARE_XCB */ if (einfo) { if (ee->prop.avoid_damage) @@ -2501,10 +2505,11 @@ _ecore_evas_x_avoid_damage_set(Ecore_Evas *ee, int on) evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); } } +#endif /* BUILD_ECORE_EVAS_SOFTWARE_X11 || BUILD_ECORE_EVAS_SOFTWARE_XCB */ } else if (!strcmp(ee->driver, "software_16_x11")) { -#if BUILD_ECORE_EVAS_X11_16 +#if BUILD_ECORE_EVAS_SOFTWARE_16_X11 Evas_Engine_Info_Software_16_X11 *einfo; ee->prop.avoid_damage = on; @@ -2544,7 +2549,7 @@ _ecore_evas_x_avoid_damage_set(Ecore_Evas *ee, int on) evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); } } -#endif /* BUILD_ECORE_EVAS_X11_16 */ +#endif /* BUILD_ECORE_EVAS_SOFTWARE_16_X11 */ } } @@ -2616,7 +2621,7 @@ static const Ecore_Evas_Engine_Func _ecore_x_engine_func = _ecore_evas_x_alpha_set, _ecore_evas_x_window_get }; -#endif +#endif /* BUILD_ECORE_EVAS_X11 */ /* * FIXME: there are some round trips. Especially, we can split @@ -2632,22 +2637,22 @@ EAPI Ecore_Evas * ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent, int x, int y, int w, int h) { -#ifdef BUILD_ECORE_EVAS_X11 -# ifdef HAVE_ECORE_X_XCB +#if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_SOFTWARE_XCB) +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB Evas_Engine_Info_Software_Xcb *einfo; # else Evas_Engine_Info_Software_X11 *einfo; -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ Ecore_Evas *ee; int argb = 0; int rmethod; static int redraw_debug = -1; -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB rmethod = evas_render_method_lookup("software_xcb"); # else rmethod = evas_render_method_lookup("software_x11"); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ if (!rmethod) return NULL; if (!ecore_x_init(disp_name)) return NULL; ee = calloc(1, sizeof(Ecore_Evas)); @@ -2659,11 +2664,11 @@ ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent, ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_x_engine_func; -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB ee->driver = "software_xcb"; # else ee->driver = "software_x11"; -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ if (disp_name) ee->name = strdup(disp_name); if (w < 1) w = 1; @@ -2710,22 +2715,22 @@ ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent, * for the '=' char */ // putenv((char*)"DESKTOP_STARTUP_ID="); } -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB einfo = (Evas_Engine_Info_Software_Xcb *)evas_engine_info_get(ee->evas); # else einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(ee->evas); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ if (einfo) { -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB xcb_screen_iterator_t iter; xcb_screen_t *screen; # else int screen; -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ /* FIXME: this is inefficient as its a round trip */ -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB screen = ecore_x_default_screen_get(); iter = xcb_setup_roots_iterator (xcb_get_setup (ecore_x_connection_get())); if (iter.rem > 1) @@ -2791,7 +2796,7 @@ ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent, free(roots); } } -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ if (redraw_debug < 0) { @@ -2800,17 +2805,17 @@ ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent, else redraw_debug = 0; } -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB einfo->info.conn = ecore_x_connection_get(); einfo->info.screen = screen; # else einfo->info.display = ecore_x_display_get(); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ einfo->info.drawable = ee->engine.x.win; if (argb) { /* FIXME: round trip */ -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB xcb_get_geometry_cookie_t cookie_geom; xcb_get_window_attributes_cookie_t cookie_attr; xcb_get_geometry_reply_t *reply_geom; @@ -2841,11 +2846,11 @@ ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent, einfo->info.depth = at.depth; einfo->info.destination_alpha = 1; } -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ } else { -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB xcb_screen_t *screen; screen = ecore_x_default_screen_get(); @@ -2856,7 +2861,7 @@ ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent, einfo->info.visual = DefaultVisual(ecore_x_display_get(), screen); einfo->info.colormap = DefaultColormap(ecore_x_display_get(), screen); einfo->info.depth = DefaultDepth(ecore_x_display_get(), screen); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ einfo->info.destination_alpha = 0; } einfo->info.rotation = 0; @@ -2878,7 +2883,7 @@ ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent, return ee; #else return NULL; -#endif /* BUILD_ECORE_EVAS_X11 */ +#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_X11 && ! BUILD_ECORE_EVAS_SOFTWARE_XCB */ } /** @@ -2889,7 +2894,11 @@ ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent, EAPI Ecore_X_Window ecore_evas_software_x11_window_get(Ecore_Evas *ee) { - return (Ecore_X_Window) _ecore_evas_x_window_get(ee); +#if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_SOFTWARE_XCB) + return (Ecore_X_Window) (long)_ecore_evas_x_window_get(ee); +#else + return 0; +#endif } /** @@ -2900,7 +2909,11 @@ ecore_evas_software_x11_window_get(Ecore_Evas *ee) EAPI Ecore_X_Window ecore_evas_software_x11_subwindow_get(Ecore_Evas *ee) { - return (Ecore_X_Window) _ecore_evas_x_window_get(ee); +#if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_SOFTWARE_XCB) + return (Ecore_X_Window) (long)_ecore_evas_x_window_get(ee); +#else + return 0; +#endif } /** @@ -2911,7 +2924,7 @@ ecore_evas_software_x11_subwindow_get(Ecore_Evas *ee) EAPI void ecore_evas_software_x11_direct_resize_set(Ecore_Evas *ee, int on) { -#ifdef BUILD_ECORE_EVAS_X11 +#if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_SOFTWARE_XCB) ee->engine.x.direct_resize = on; if (ee->prop.avoid_damage) { @@ -2944,7 +2957,7 @@ ecore_evas_software_x11_direct_resize_set(Ecore_Evas *ee, int on) EAPI int ecore_evas_software_x11_direct_resize_get(Ecore_Evas *ee) { -#ifdef BUILD_ECORE_EVAS_X11 +#if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_SOFTWARE_XCB) return ee->engine.x.direct_resize; #else return 0; @@ -2959,7 +2972,7 @@ ecore_evas_software_x11_direct_resize_get(Ecore_Evas *ee) EAPI void ecore_evas_software_x11_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window win) { -#ifdef BUILD_ECORE_EVAS_X11 +#if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_SOFTWARE_XCB) Ecore_X_Window *winp; winp = malloc(sizeof(Ecore_X_Window)); @@ -2982,7 +2995,7 @@ EAPI Ecore_Evas * ecore_evas_gl_x11_new(const char *disp_name, Ecore_X_Window parent, int x, int y, int w, int h) { -#ifdef BUILD_ECORE_EVAS_X11_GL +#ifdef BUILD_ECORE_EVAS_OPENGL_X11 # ifdef HAVE_ECORE_X_XCB Ecore_Evas *ee = NULL; # else @@ -3063,7 +3076,7 @@ ecore_evas_gl_x11_new(const char *disp_name, Ecore_X_Window parent, parent = 0; x = y = w = h = 0; return NULL; -#endif +#endif /* ! BUILD_ECORE_EVAS_OPENGL_X11 */ } /** @@ -3074,7 +3087,11 @@ ecore_evas_gl_x11_new(const char *disp_name, Ecore_X_Window parent, EAPI Ecore_X_Window ecore_evas_gl_x11_window_get(Ecore_Evas *ee) { +#ifdef BUILD_ECORE_EVAS_OPENGL_X11 return (Ecore_X_Window) _ecore_evas_x_window_get(ee); +#else + return 0; +#endif /* ! BUILD_ECORE_EVAS_OPENGL_X11 */ } /** @@ -3085,7 +3102,11 @@ ecore_evas_gl_x11_window_get(Ecore_Evas *ee) EAPI Ecore_X_Window ecore_evas_gl_x11_subwindow_get(Ecore_Evas *ee) { +#ifdef BUILD_ECORE_EVAS_OPENGL_X11 return (Ecore_X_Window) _ecore_evas_x_window_get(ee); +#else + return 0; +#endif /* ! BUILD_ECORE_EVAS_OPENGL_X11 */ } /** @@ -3096,11 +3117,11 @@ ecore_evas_gl_x11_subwindow_get(Ecore_Evas *ee) EAPI void ecore_evas_gl_x11_direct_resize_set(Ecore_Evas *ee, int on) { -#ifdef BUILD_ECORE_EVAS_X11 +#ifdef BUILD_ECORE_EVAS_OPENGL_X11 ee->engine.x.direct_resize = on; #else return; -#endif +#endif /* ! BUILD_ECORE_EVAS_OPENGL_X11 */ } /** @@ -3111,11 +3132,11 @@ ecore_evas_gl_x11_direct_resize_set(Ecore_Evas *ee, int on) EAPI int ecore_evas_gl_x11_direct_resize_get(Ecore_Evas *ee) { -#ifdef BUILD_ECORE_EVAS_X11 +#ifdef BUILD_ECORE_EVAS_OPENGL_X11 return ee->engine.x.direct_resize; #else return 0; -#endif +#endif /* ! BUILD_ECORE_EVAS_OPENGL_X11 */ } /** @@ -3126,7 +3147,9 @@ ecore_evas_gl_x11_direct_resize_get(Ecore_Evas *ee) EAPI void ecore_evas_gl_x11_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window win) { +#ifdef BUILD_ECORE_EVAS_OPENGL_X11 ecore_evas_software_x11_extra_event_window_add(ee, win); +#endif /* ! BUILD_ECORE_EVAS_OPENGL_X11 */ } /** @@ -3138,20 +3161,20 @@ EAPI Ecore_Evas * ecore_evas_xrender_x11_new(const char *disp_name, Ecore_X_Window parent, int x, int y, int w, int h) { -#ifdef BUILD_ECORE_EVAS_XRENDER -# ifdef HAVE_ECORE_X_XCB +#if defined (BUILD_ECORE_EVAS_XRENDER_X11) || defined (BUILD_ECORE_EVAS_XRENDER_XCB) +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB Evas_Engine_Info_XRender_Xcb *einfo; # else Evas_Engine_Info_XRender_X11 *einfo; -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ Ecore_Evas *ee; int rmethod; -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB rmethod = evas_render_method_lookup("xrender_xcb"); # else rmethod = evas_render_method_lookup("xrender_x11"); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ if (!rmethod) return NULL; if (!ecore_x_init(disp_name)) return NULL; ee = calloc(1, sizeof(Ecore_Evas)); @@ -3163,11 +3186,11 @@ ecore_evas_xrender_x11_new(const char *disp_name, Ecore_X_Window parent, ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_x_engine_func; -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB ee->driver = "xrender_xcb"; # else ee->driver = "xrender_x11"; -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ if (disp_name) ee->name = strdup(disp_name); if (w < 1) w = 1; @@ -3202,14 +3225,14 @@ ecore_evas_xrender_x11_new(const char *disp_name, Ecore_X_Window parent, * for the '=' char */ // putenv((char*)"DESKTOP_STARTUP_ID="); } -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB einfo = (Evas_Engine_Info_XRender_Xcb *)evas_engine_info_get(ee->evas); # else einfo = (Evas_Engine_Info_XRender_X11 *)evas_engine_info_get(ee->evas); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ if (einfo) { -# ifdef HAVE_ECORE_X_XCB +# ifdef BUILD_ECORE_EVAS_XRENDER_XCB xcb_screen_iterator_t iter; xcb_screen_t *screen; @@ -3288,7 +3311,7 @@ ecore_evas_xrender_x11_new(const char *disp_name, Ecore_X_Window parent, } einfo->info.display = ecore_x_display_get(); einfo->info.visual = DefaultVisual(ecore_x_display_get(), screen); -# endif /* HAVE_ECORE_X_XCB */ +# endif /* ! BUILD_ECORE_EVAS_XRENDER_XCB */ einfo->info.drawable = ee->engine.x.win; evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); } @@ -3307,7 +3330,7 @@ ecore_evas_xrender_x11_new(const char *disp_name, Ecore_X_Window parent, return ee; #else return NULL; -#endif +#endif /* ! BUILD_ECORE_EVAS_XRENDER_X11 && ! BUILD_ECORE_EVAS_XRENDER_XCB */ } /** @@ -3318,7 +3341,11 @@ ecore_evas_xrender_x11_new(const char *disp_name, Ecore_X_Window parent, EAPI Ecore_X_Window ecore_evas_xrender_x11_window_get(Ecore_Evas *ee) { +#if defined (BUILD_ECORE_EVAS_XRENDER_X11) || defined (BUILD_ECORE_EVAS_XRENDER_XCB) return (Ecore_X_Window) _ecore_evas_x_window_get(ee); +#else + return 0; +#endif /* ! BUILD_ECORE_EVAS_XRENDER_X11 && ! BUILD_ECORE_EVAS_XRENDER_XCB */ } /** @@ -3329,7 +3356,11 @@ ecore_evas_xrender_x11_window_get(Ecore_Evas *ee) EAPI Ecore_X_Window ecore_evas_xrender_x11_subwindow_get(Ecore_Evas *ee) { +#if defined (BUILD_ECORE_EVAS_XRENDER_X11) || defined (BUILD_ECORE_EVAS_XRENDER_XCB) return (Ecore_X_Window) _ecore_evas_x_window_get(ee); +#else + return 0; +#endif /* ! BUILD_ECORE_EVAS_XRENDER_X11 && ! BUILD_ECORE_EVAS_XRENDER_XCB */ } /** @@ -3340,11 +3371,11 @@ ecore_evas_xrender_x11_subwindow_get(Ecore_Evas *ee) EAPI void ecore_evas_xrender_x11_direct_resize_set(Ecore_Evas *ee, int on) { -#ifdef BUILD_ECORE_EVAS_X11 +#if defined (BUILD_ECORE_EVAS_XRENDER_X11) || defined (BUILD_ECORE_EVAS_XRENDER_XCB) ee->engine.x.direct_resize = on; #else return; -#endif +#endif /* ! BUILD_ECORE_EVAS_XRENDER_X11 && ! BUILD_ECORE_EVAS_XRENDER_XCB */ } /** @@ -3355,11 +3386,11 @@ ecore_evas_xrender_x11_direct_resize_set(Ecore_Evas *ee, int on) EAPI int ecore_evas_xrender_x11_direct_resize_get(Ecore_Evas *ee) { -#ifdef BUILD_ECORE_EVAS_X11 +#if defined (BUILD_ECORE_EVAS_XRENDER_X11) || defined (BUILD_ECORE_EVAS_XRENDER_XCB) return ee->engine.x.direct_resize; #else return 0; -#endif +#endif /* ! BUILD_ECORE_EVAS_XRENDER_X11 && ! BUILD_ECORE_EVAS_XRENDER_XCB */ } /** @@ -3370,7 +3401,11 @@ ecore_evas_xrender_x11_direct_resize_get(Ecore_Evas *ee) EAPI void ecore_evas_xrender_x11_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window win) { +#if defined (BUILD_ECORE_EVAS_XRENDER_X11) || defined (BUILD_ECORE_EVAS_XRENDER_XCB) ecore_evas_software_x11_extra_event_window_add(ee, win); +#else + return; +#endif /* ! BUILD_ECORE_EVAS_XRENDER_X11 && ! BUILD_ECORE_EVAS_XRENDER_XCB */ } /** @@ -3382,7 +3417,7 @@ EAPI Ecore_Evas * ecore_evas_software_x11_16_new(const char *disp_name, Ecore_X_Window parent, int x, int y, int w, int h) { -#if BUILD_ECORE_EVAS_X11_16 +#if BUILD_ECORE_EVAS_SOFTWARE_16_X11 Evas_Engine_Info_Software_16_X11 *einfo; Ecore_Evas *ee; int argb = 0; @@ -3509,7 +3544,7 @@ ecore_evas_software_x11_16_new(const char *disp_name, Ecore_X_Window parent, return ee; #else return NULL; -#endif /* BUILD_ECORE_EVAS_X11 */ +#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_16_X11 */ } /** @@ -3520,7 +3555,11 @@ ecore_evas_software_x11_16_new(const char *disp_name, Ecore_X_Window parent, EAPI Ecore_X_Window ecore_evas_software_x11_16_window_get(Ecore_Evas *ee) { +#if BUILD_ECORE_EVAS_SOFTWARE_16_X11 return (Ecore_X_Window) _ecore_evas_x_window_get(ee); +#else + return 0; +#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_16_X11 */ } /** @@ -3531,7 +3570,11 @@ ecore_evas_software_x11_16_window_get(Ecore_Evas *ee) EAPI Ecore_X_Window ecore_evas_software_x11_16_subwindow_get(Ecore_Evas *ee) { +#if BUILD_ECORE_EVAS_SOFTWARE_16_X11 return (Ecore_X_Window) _ecore_evas_x_window_get(ee); +#else + return 0; +#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_16_X11 */ } /** @@ -3542,7 +3585,7 @@ ecore_evas_software_x11_16_subwindow_get(Ecore_Evas *ee) EAPI void ecore_evas_software_x11_16_direct_resize_set(Ecore_Evas *ee, int on) { -#if BUILD_ECORE_EVAS_X11_16 +#if BUILD_ECORE_EVAS_SOFTWARE_16_X11 ee->engine.x.direct_resize = on; if (ee->prop.avoid_damage) { @@ -3564,7 +3607,7 @@ ecore_evas_software_x11_16_direct_resize_set(Ecore_Evas *ee, int on) } #else return; -#endif +#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_16_X11 */ } /** @@ -3575,11 +3618,11 @@ ecore_evas_software_x11_16_direct_resize_set(Ecore_Evas *ee, int on) EAPI int ecore_evas_software_x11_16_direct_resize_get(Ecore_Evas *ee) { -#if BUILD_ECORE_EVAS_X11_16 +#if BUILD_ECORE_EVAS_SOFTWARE_16_X11 return ee->engine.x.direct_resize; #else return 0; -#endif +#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_16_X11 */ } /** @@ -3590,7 +3633,7 @@ ecore_evas_software_x11_16_direct_resize_get(Ecore_Evas *ee) EAPI void ecore_evas_software_x11_16_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window win) { -#if BUILD_ECORE_EVAS_X11_16 +#if BUILD_ECORE_EVAS_SOFTWARE_16_X11 Ecore_X_Window *winp; winp = malloc(sizeof(Ecore_X_Window)); @@ -3601,5 +3644,5 @@ ecore_evas_software_x11_16_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window ecore_evases_hash = evas_hash_add(ecore_evases_hash, _ecore_evas_x_winid_str_get(win), ee); } #else -#endif +#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_16_X11 */ } diff --git a/legacy/ecore/src/lib/ecore_x/Makefile.am b/legacy/ecore/src/lib/ecore_x/Makefile.am index c789555fe3..5acbcd2e48 100644 --- a/legacy/ecore/src/lib/ecore_x/Makefile.am +++ b/legacy/ecore/src/lib/ecore_x/Makefile.am @@ -1,199 +1,36 @@ MAINTAINERCLEANFILES = Makefile.in -if BUILD_ECORE_X_XCB -AM_CPPFLAGS = \ -@XCB_DAMAGE_CFLAGS@ \ -@XCB_COMPOSITE_CFLAGS@ \ -@XCB_DPMS_CFLAGS@ \ -@XCB_RANDR_CFLAGS@ \ -@XCB_RENDER_CFLAGS@ \ -@XCB_SCREENSAVER_CFLAGS@ \ -@XCB_SHAPE_CFLAGS@ \ -@XCB_SYNC_CFLAGS@ \ -@XCB_XFIXES_CFLAGS@ \ -@XCB_XINERAMA_CFLAGS@ \ -@XCB_XPRINT_CFLAGS@ \ -@XCB_XTEST_CFLAGS@ \ -@XCB_CFLAGS@ \ --I$(top_srcdir)/src/lib/ecore \ --I$(top_srcdir)/src/lib/ecore_txt \ --I$(top_builddir)/src/lib/ecore \ --I$(top_builddir)/src/lib/ecore_txt -else -AM_CPPFLAGS = \ -@Xcursor_cflags@ \ -@XDAMAGE_CFLAGS@ \ -@XCOMPOSITE_CFLAGS@ \ -@XDPMS_CFLAGS@ \ -@XFIXES_CFLAGS@ \ -@XINERAMA_CFLAGS@ \ -@XPRINT_CFLAGS@ \ -@XRANDR_CFLAGS@ \ -@XRENDER_CFLAGS@ \ -@XSS_CFLAGS@ \ -@XTEST_CFLAGS@ \ -@x_cflags@ \ --I$(top_srcdir)/src/lib/ecore \ --I$(top_srcdir)/src/lib/ecore_txt \ --I$(top_builddir)/src/lib/ecore \ --I$(top_builddir)/src/lib/ecore_txt -endif - -if BUILD_ECORE_X_XCB - -lib_LTLIBRARIES = libecore_x.la -include_HEADERS = \ -Ecore_X.h \ -Ecore_X_Atoms.h \ -Ecore_X_Cursor.h - -libecore_x_la_SOURCES = \ -ecore_xcb_atom.c \ -ecore_xcb_cursor.c \ -ecore_xcb_damage.c \ -ecore_xcb_composite.c \ -ecore_xcb_dnd.c \ -ecore_xcb_dpms.c \ -ecore_xcb_drawable.c \ -ecore_xcb_e.c \ -ecore_xcb_events.c \ -ecore_xcb_fixes.c \ -ecore_xcb_gc.c \ -ecore_xcb_icccm.c \ -ecore_xcb_mwm.c \ -ecore_xcb_netwm.c \ -ecore_xcb_pixmap.c \ -ecore_xcb_randr.c \ -ecore_xcb_reply.c \ -ecore_xcb_screensaver.c \ -ecore_xcb_selection.c \ -ecore_xcb_shape.c \ -ecore_xcb_sync.c \ -ecore_xcb_window.c \ -ecore_xcb_window_prop.c \ -ecore_xcb_xinerama.c \ -ecore_xcb.c \ -ecore_xcb_private.h \ -ecore_x_atoms_decl.h - -libecore_x_la_LIBADD = \ -@XCB_DAMAGE_LIBS@ \ -@XCB_COMPOSITE_LIBS@ \ -@XCB_DPMS_LIBS@ \ -@XCB_RANDR_LIBS@ \ -@XCB_RENDER_LIBS@ \ -@XCB_SCREENSAVER_LIBS@ \ -@XCB_SHAPE_LIBS@ \ -@XCB_SYNC_LIBS@ \ -@XCB_XFIXES_LIBS@ \ -@XCB_XINERAMA_LIBS@ \ -@XCB_XPRINT_LIBS@ \ -@XCB_XTEST_LIBS@ \ -@XCB_LIBS@ \ -$(top_builddir)/src/lib/ecore/libecore.la \ -$(top_builddir)/src/lib/ecore_txt/libecore_txt.la - -libecore_x_la_LDFLAGS = -version-info @version_info@ - -libecore_x_la_DEPENDENCIES = \ -$(top_builddir)/src/lib/ecore/libecore.la \ -$(top_builddir)/src/lib/ecore_txt/libecore_txt.la - -else +SUBDIRS = xlib xcb if BUILD_ECORE_X +if BUILD_ECORE_X_XCB +DEP = xcb/libecore_x_xcb.la +else +DEP = xlib/libecore_x_xlib.la +endif + +AM_CPPFLAGS = \ +-I$(top_srcdir)/src/lib/ecore \ +-I$(top_srcdir)/src/lib/ecore_txt \ +-I$(top_builddir)/src/lib/ecore \ +-I$(top_builddir)/src/lib/ecore_txt + lib_LTLIBRARIES = libecore_x.la + +libecore_x_la_SOURCES = + +libecore_x_la_LIBADD = $(DEP) + +libecore_x_la_LDFLAGS = -version-info @version_info@ + +libecore_x_la_DEPENDENCIES = $(DEP) + include_HEADERS = \ Ecore_X.h \ Ecore_X_Atoms.h \ Ecore_X_Cursor.h -libecore_x_la_SOURCES = \ -ecore_x.c \ -ecore_x_dnd.c \ -ecore_x_sync.c \ -ecore_x_randr.c \ -ecore_x_fixes.c \ -ecore_x_damage.c \ -ecore_x_composite.c \ -ecore_x_error.c \ -ecore_x_events.c \ -ecore_x_icccm.c \ -ecore_x_netwm.c \ -ecore_x_mwm.c \ -ecore_x_e.c \ -ecore_x_selection.c \ -ecore_x_window.c \ -ecore_x_window_prop.c \ -ecore_x_window_shape.c \ -ecore_x_pixmap.c \ -ecore_x_gc.c \ -ecore_x_xinerama.c \ -ecore_x_screensaver.c \ -ecore_x_dpms.c \ -ecore_x_drawable.c \ -ecore_x_cursor.c \ -ecore_x_test.c \ -ecore_x_atoms.c \ -ecore_x_private.h \ -ecore_x_atoms_decl.h - -libecore_x_la_LIBADD = \ -@Xcursor_libs@ \ -@XDAMAGE_LIBS@ \ -@XCOMPOSITE_LIBS@ \ -@XDPMS_LIBS@ \ -@XFIXES_LIBS@ \ -@XINERAMA_LIBS@ \ -@XPRINT_LIBS@ \ -@XRANDR_LIBS@ \ -@XRENDER_LIBS@ \ -@XSS_LIBS@ \ -@XTEST_LIBS@ \ -@x_libs@ \ -$(top_builddir)/src/lib/ecore/libecore.la \ -$(top_builddir)/src/lib/ecore_txt/libecore_txt.la - -libecore_x_la_LDFLAGS = -version-info @version_info@ - -libecore_x_la_DEPENDENCIES = \ -$(top_builddir)/src/lib/ecore/libecore.la \ -$(top_builddir)/src/lib/ecore_txt/libecore_txt.la - endif -endif - -EXTRA_DIST = \ -Ecore_X.h \ -Ecore_X_Atoms.h \ -Ecore_X_Cursor.h \ -ecore_x.c \ -ecore_x_dnd.c \ -ecore_x_sync.c \ -ecore_x_randr.c \ -ecore_x_fixes.c \ -ecore_x_damage.c \ -ecore_x_composite.c \ -ecore_x_error.c \ -ecore_x_events.c \ -ecore_x_icccm.c \ -ecore_x_netwm.c \ -ecore_x_mwm.c \ -ecore_x_e.c \ -ecore_x_selection.c \ -ecore_x_window.c \ -ecore_x_window_prop.c \ -ecore_x_window_shape.c \ -ecore_x_pixmap.c \ -ecore_x_gc.c \ -ecore_x_xinerama.c \ -ecore_x_screensaver.c \ -ecore_x_dpms.c \ -ecore_x_drawable.c \ -ecore_x_cursor.c \ -ecore_x_test.c \ -ecore_x_atoms.c \ -ecore_x_private.h \ -ecore_x_atoms_decl.h +EXTRA_DIST = ecore_x_atoms_decl.h diff --git a/legacy/ecore/src/lib/ecore_x/xcb/Makefile.am b/legacy/ecore/src/lib/ecore_x/xcb/Makefile.am new file mode 100644 index 0000000000..f77a80b7ef --- /dev/null +++ b/legacy/ecore/src/lib/ecore_x/xcb/Makefile.am @@ -0,0 +1,81 @@ + +MAINTAINERCLEANFILES = Makefile.in + +if BUILD_ECORE_X_XCB + +AM_CPPFLAGS = \ +@XCB_DAMAGE_CFLAGS@ \ +@XCB_COMPOSITE_CFLAGS@ \ +@XCB_DPMS_CFLAGS@ \ +@XCB_RANDR_CFLAGS@ \ +@XCB_RENDER_CFLAGS@ \ +@XCB_SCREENSAVER_CFLAGS@ \ +@XCB_SHAPE_CFLAGS@ \ +@XCB_SYNC_CFLAGS@ \ +@XCB_XFIXES_CFLAGS@ \ +@XCB_XINERAMA_CFLAGS@ \ +@XCB_XPRINT_CFLAGS@ \ +@XCB_XTEST_CFLAGS@ \ +@XCB_CFLAGS@ \ +-I$(top_srcdir)/src/lib/ecore \ +-I$(top_srcdir)/src/lib/ecore_txt \ +-I$(top_srcdir)/src/lib/ecore_x \ +-I$(top_builddir)/src/lib/ecore \ +-I$(top_builddir)/src/lib/ecore_txt \ +-I$(top_builddir)/src/lib/ecore_x + +noinst_LTLIBRARIES = libecore_x_xcb.la + +libecore_x_xcb_la_SOURCES = \ +ecore_xcb_atom.c \ +ecore_xcb_cursor.c \ +ecore_xcb_damage.c \ +ecore_xcb_composite.c \ +ecore_xcb_dnd.c \ +ecore_xcb_dpms.c \ +ecore_xcb_drawable.c \ +ecore_xcb_e.c \ +ecore_xcb_events.c \ +ecore_xcb_fixes.c \ +ecore_xcb_gc.c \ +ecore_xcb_icccm.c \ +ecore_xcb_mwm.c \ +ecore_xcb_netwm.c \ +ecore_xcb_pixmap.c \ +ecore_xcb_randr.c \ +ecore_xcb_reply.c \ +ecore_xcb_screensaver.c \ +ecore_xcb_selection.c \ +ecore_xcb_shape.c \ +ecore_xcb_sync.c \ +ecore_xcb_window.c \ +ecore_xcb_window_prop.c \ +ecore_xcb_xinerama.c \ +ecore_xcb.c + +libecore_x_xcb_la_LIBADD = \ +@XCB_DAMAGE_LIBS@ \ +@XCB_COMPOSITE_LIBS@ \ +@XCB_DPMS_LIBS@ \ +@XCB_RANDR_LIBS@ \ +@XCB_RENDER_LIBS@ \ +@XCB_SCREENSAVER_LIBS@ \ +@XCB_SHAPE_LIBS@ \ +@XCB_SYNC_LIBS@ \ +@XCB_XFIXES_LIBS@ \ +@XCB_XINERAMA_LIBS@ \ +@XCB_XPRINT_LIBS@ \ +@XCB_XTEST_LIBS@ \ +@XCB_LIBS@ \ +$(top_builddir)/src/lib/ecore/libecore.la \ +$(top_builddir)/src/lib/ecore_txt/libecore_txt.la + +libecore_x_xcb_la_LDFLAGS = -version-info @version_info@ + +libecore_x_xcb_la_DEPENDENCIES = \ +$(top_builddir)/src/lib/ecore/libecore.la \ +$(top_builddir)/src/lib/ecore_txt/libecore_txt.la + +endif + +EXTRA_DIST = ecore_xcb_private.h diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb.c similarity index 99% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb.c index 0456a1e03a..3bfcd05498 100644 --- a/legacy/ecore/src/lib/ecore_x/ecore_xcb.c +++ b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb.c @@ -244,7 +244,9 @@ ecore_x_init(const char *name) #ifdef ECORE_XCB_SYNC xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_sync_id); - cookie_sync_init = xcb_sync_initialize_unchecked(_ecore_xcb_conn); + cookie_sync_init = xcb_sync_initialize_unchecked(_ecore_xcb_conn, + XCB_SYNC_MAJOR_VERSION, + XCB_SYNC_MINOR_VERSION); #endif /* ECORE_XCB_SYNC */ #ifdef ECORE_XCB_FIXES diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_atom.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_atom.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_atom.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_atom.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_composite.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_composite.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_composite.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_composite.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_cursor.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_cursor.c similarity index 91% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_cursor.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_cursor.c index d0cf49324c..1dcea4db76 100644 --- a/legacy/ecore/src/lib/ecore_x/ecore_xcb_cursor.c +++ b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_cursor.c @@ -60,7 +60,7 @@ ecore_x_cursor_new(Ecore_X_Window window, #endif /* ECORE_XCB_CURSOR */ { const uint32_t dither[2][2] = - { + { {0, 2}, {3, 1} }; @@ -91,11 +91,11 @@ ecore_x_cursor_new(Ecore_X_Window window, 1, mask, draw, 1, 1); - image = xcb_image_create(_ecore_xcb_conn, 1, - XCB_IMAGE_FORMAT_Z_PIXMAP, 0, - NULL, w, h, 32, 0); - image->data = malloc(image->bytes_per_line * image->height); - + image = xcb_image_create_native(_ecore_xcb_conn, w, h, + XCB_IMAGE_FORMAT_Z_PIXMAP, + 32, NULL, ~0, NULL); + image->data = malloc(image->size); + fr = 0x00; fg = 0x00; fb = 0x00; br = 0xff; bg = 0xff; bb = 0xff; pix = (uint32_t *)pixels; @@ -104,7 +104,7 @@ ecore_x_cursor_new(Ecore_X_Window window, for (x = 0; x < w; x++) { uint8_t r, g, b, a; - + a = (pix[0] >> 24) & 0xff; r = (pix[0] >> 16) & 0xff; g = (pix[0] >> 8 ) & 0xff; @@ -113,14 +113,14 @@ ecore_x_cursor_new(Ecore_X_Window window, { if ((uint32_t)(r + g + b) > brightest) { - brightest = r + g + b; + brightest = r + g + b; br = r; bg = g; bb = b; } if ((uint32_t)(r + g + b) < darkest) { - darkest = r + g + b; + darkest = r + g + b; fr = r; fg = g; fb = b; @@ -129,7 +129,7 @@ ecore_x_cursor_new(Ecore_X_Window window, pix++; } } - + pix = (uint32_t *)pixels; for (y = 0; y < h; y++) { @@ -138,15 +138,15 @@ ecore_x_cursor_new(Ecore_X_Window window, uint32_t v; uint8_t r, g, b; int32_t d1, d2; - + r = (pix[0] >> 16) & 0xff; g = (pix[0] >> 8 ) & 0xff; b = (pix[0] ) & 0xff; - d1 = + d1 = ((r - fr) * (r - fr)) + ((g - fg) * (g - fg)) + ((b - fb) * (b - fb)); - d2 = + d2 = ((r - br) * (r - br)) + ((g - bg) * (g - bg)) + ((b - bb) * (b - bb)); @@ -167,7 +167,7 @@ ecore_x_cursor_new(Ecore_X_Window window, draw = pixmap; gc = xcb_generate_id(_ecore_xcb_conn); xcb_create_gc(_ecore_xcb_conn, gc, draw, 0, NULL); - xcb_image_put(_ecore_xcb_conn, draw, gc, image, 0, 0, 0, 0, w, h); + xcb_image_put(_ecore_xcb_conn, draw, gc, image, 0, 0, 0); xcb_free_gc(_ecore_xcb_conn, gc); pix = (uint32_t *)pixels; @@ -176,7 +176,7 @@ ecore_x_cursor_new(Ecore_X_Window window, for (x = 0; x < w; x++) { uint32_t v; - + v = (((pix[0] >> 24) & 0xff) * 5) / 256; if (v > dither[x & 0x1][y & 0x1]) v = 1; else v = 0; @@ -187,9 +187,9 @@ ecore_x_cursor_new(Ecore_X_Window window, draw = mask; gc = xcb_generate_id(_ecore_xcb_conn); xcb_create_gc (_ecore_xcb_conn, gc, draw, 0, NULL); - xcb_image_put(_ecore_xcb_conn, draw, gc, image, 0, 0, 0, 0, w, h); + xcb_image_put(_ecore_xcb_conn, draw, gc, image, 0, 0, 0); xcb_free_gc(_ecore_xcb_conn, gc); - + free(image->data); image->data = NULL; xcb_image_destroy(image); @@ -204,7 +204,7 @@ ecore_x_cursor_new(Ecore_X_Window window, bg << 8 | bg, bb << 8 | bb, hot_x, - hot_y); + hot_y); xcb_free_pixmap(_ecore_xcb_conn, pixmap); xcb_free_pixmap(_ecore_xcb_conn, mask); diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_damage.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_damage.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_damage.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_damage.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_dnd.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_dnd.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_dnd.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_dnd.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_dpms.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_dpms.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_dpms.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_dpms.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_drawable.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_drawable.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_drawable.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_drawable.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_e.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_e.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_e.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_e.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_events.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_events.c similarity index 98% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_events.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_events.c index 1ce95fb810..bf6799a9b3 100644 --- a/legacy/ecore/src/lib/ecore_x/ecore_xcb_events.c +++ b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_events.c @@ -350,6 +350,8 @@ _ecore_x_event_handle_button_press(xcb_generic_event_t *event) e->win = ev->event; e->event_win = ev->event; + e->same_screen = ev->same_screen; + e->root_win = ev->root; e->time = ev->time; _ecore_xcb_event_last_time = e->time; _ecore_xcb_event_last_window = e->win; @@ -395,6 +397,8 @@ _ecore_x_event_handle_button_press(xcb_generic_event_t *event) e->root.y = ev->root_y; if (ev->child) e->win = ev->child; else e->win = ev->event; + e->same_screen = ev->same_screen; + e->root_win = ev->root; e->event_win = ev->event; e->time = ev->time; _ecore_xcb_event_last_time = e->time; @@ -426,6 +430,8 @@ _ecore_x_event_handle_button_press(xcb_generic_event_t *event) e->root.y = ev->root_y; if (ev->child) e->win = ev->child; else e->win = ev->event; + e->same_screen = ev->same_screen; + e->root_win = ev->root; e->event_win = ev->event; e->time = ev->time; if (e->win == e->event_win) @@ -521,6 +527,8 @@ _ecore_x_event_handle_button_release(xcb_generic_event_t *event) e->root.y = ev->root_y; if (ev->child) e->win = ev->child; else e->win = ev->event; + e->same_screen = ev->same_screen; + e->root_win = ev->root; e->event_win = ev->event; e->time = ev->time; _ecore_xcb_event_last_time = e->time; @@ -542,6 +550,8 @@ _ecore_x_event_handle_button_release(xcb_generic_event_t *event) e->root.y = ev->root_y; if (ev->child) e->win = ev->child; else e->win = ev->event; + e->same_screen = ev->same_screen; + e->root_win = ev->root; e->event_win = ev->event; e->time = ev->time; _ecore_xcb_mouse_up_count++; @@ -589,6 +599,8 @@ _ecore_x_event_handle_motion_notify(xcb_generic_event_t *event) e->root.y = ev->root_y; if (ev->child) e->win = ev->child; else e->win = ev->event; + e->same_screen = ev->same_screen; + e->root_win = ev->root; e->event_win = ev->event; e->time = ev->time; _ecore_xcb_event_last_time = e->time; @@ -597,7 +609,7 @@ _ecore_x_event_handle_motion_notify(xcb_generic_event_t *event) _ecore_xcb_event_last_root_y = e->root.y; /* Xdnd handling */ - _ecore_x_dnd_drag(e->root.x, e->root.y); + _ecore_x_dnd_drag(e->root_win, e->root.x, e->root.y); ecore_event_add(ECORE_X_EVENT_MOUSE_MOVE, e, NULL, NULL); } @@ -621,6 +633,8 @@ _ecore_x_event_handle_enter_notify(xcb_generic_event_t *event) e->root.y = ev->root_y; if (ev->child) e->win = ev->child; else e->win = ev->event; + e->same_screen = ev->same_screen_focus; + e->root_win = ev->root; e->event_win = ev->event; e->time = ev->time; _ecore_xcb_event_last_time = e->time; @@ -641,6 +655,8 @@ _ecore_x_event_handle_enter_notify(xcb_generic_event_t *event) e->root.y = ev->root_y; if (ev->child) e->win = ev->child; else e->win = ev->event; + e->same_screen = ev->same_screen_focus; + e->root_win = ev->root; e->event_win = ev->event; switch (ev->mode) { case XCB_NOTIFY_MODE_NORMAL: @@ -700,6 +716,8 @@ _ecore_x_event_handle_leave_notify(xcb_generic_event_t *event) e->root.y = ev->root_y; if (ev->child) e->win = ev->child; else e->win = ev->event; + e->same_screen = ev->same_screen_focus; + e->root_win = ev->root; e->event_win = ev->event; e->time = ev->time; _ecore_xcb_event_last_time = e->time; @@ -720,6 +738,8 @@ _ecore_x_event_handle_leave_notify(xcb_generic_event_t *event) e->root.y = ev->root_y; if (ev->child) e->win = ev->child; else e->win = ev->event; + e->same_screen = ev->same_screen_focus; + e->root_win = ev->root; e->event_win = ev->event; switch (ev->mode) { case XCB_NOTIFY_MODE_NORMAL: @@ -767,7 +787,7 @@ _ecore_x_event_handle_leave_notify(xcb_generic_event_t *event) void _ecore_x_event_handle_focus_in(xcb_generic_event_t *event) { - xcb_focus_in_event_t *ev; + xcb_focus_in_event_t *ev; Ecore_X_Event_Window_Focus_In *e; ev = (xcb_focus_in_event_t *)event; @@ -1049,7 +1069,7 @@ _ecore_x_event_handle_configure_notify(xcb_generic_event_t *event) e->border = ev->border_width; e->override = ev->override_redirect; /* send_event is bit 7 (0x80) of response_type */ - e->from_wm = ev->response_type & 0x80; + e->from_wm = (ev->response_type & 0x80) ? 1 : 0; e->time = _ecore_xcb_event_last_time; ecore_event_add(ECORE_X_EVENT_WINDOW_CONFIGURE, e, NULL, NULL); } diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_fixes.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_fixes.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_fixes.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_fixes.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_gc.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_gc.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_gc.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_gc.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_icccm.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_icccm.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_icccm.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_icccm.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_mwm.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_mwm.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_mwm.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_mwm.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_netwm.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_netwm.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_netwm.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_netwm.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_pixmap.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_pixmap.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_pixmap.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_pixmap.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_private.h b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_private.h similarity index 98% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_private.h rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_private.h index 8bf5aac61a..180010c928 100644 --- a/legacy/ecore/src/lib/ecore_x/ecore_xcb_private.h +++ b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_private.h @@ -249,7 +249,8 @@ void _ecore_x_dnd_init (void); void _ecore_x_dnd_shutdown (void); Ecore_X_DND_Source *_ecore_x_dnd_source_get (void); Ecore_X_DND_Target *_ecore_x_dnd_target_get (void); -void _ecore_x_dnd_drag (int x, +void _ecore_x_dnd_drag (Ecore_X_Window root, + int x, int y); diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_randr.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_randr.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_randr.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_randr.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_reply.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_reply.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_reply.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_reply.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_screensaver.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_screensaver.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_screensaver.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_screensaver.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_selection.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_selection.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_selection.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_selection.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_shape.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_shape.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_shape.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_shape.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_sync.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_sync.c similarity index 92% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_sync.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_sync.c index 05fbfb6b6c..5b1fd0b94e 100644 --- a/legacy/ecore/src/lib/ecore_x/ecore_xcb_sync.c +++ b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_sync.c @@ -28,7 +28,9 @@ _ecore_x_sync_init(const xcb_query_extension_reply_t *reply) { #ifdef ECORE_XCB_SYNC if (reply && (reply->present)) - _ecore_xcb_sync_init_cookie = xcb_sync_initialize_unchecked(_ecore_xcb_conn); + _ecore_xcb_sync_init_cookie = xcb_sync_initialize_unchecked(_ecore_xcb_conn, + XCB_SYNC_MAJOR_VERSION, + XCB_SYNC_MINOR_VERSION); #endif /* ECORE_XCB_SYNC */ } diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_window.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_window.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_window.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_window.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_window_prop.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_window_prop.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_window_prop.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_window_prop.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_xcb_xinerama.c b/legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_xinerama.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_xcb_xinerama.c rename to legacy/ecore/src/lib/ecore_x/xcb/ecore_xcb_xinerama.c diff --git a/legacy/ecore/src/lib/ecore_x/xlib/Makefile.am b/legacy/ecore/src/lib/ecore_x/xlib/Makefile.am new file mode 100644 index 0000000000..4cb9f8ba19 --- /dev/null +++ b/legacy/ecore/src/lib/ecore_x/xlib/Makefile.am @@ -0,0 +1,80 @@ + +MAINTAINERCLEANFILES = Makefile.in + +if BUILD_ECORE_X_XLIB + +AM_CPPFLAGS = \ +@Xcursor_cflags@ \ +@XDAMAGE_CFLAGS@ \ +@XCOMPOSITE_CFLAGS@ \ +@XDPMS_CFLAGS@ \ +@XFIXES_CFLAGS@ \ +@XINERAMA_CFLAGS@ \ +@XPRINT_CFLAGS@ \ +@XRANDR_CFLAGS@ \ +@XRENDER_CFLAGS@ \ +@XSS_CFLAGS@ \ +@XTEST_CFLAGS@ \ +@x_cflags@ \ +-I$(top_srcdir)/src/lib/ecore \ +-I$(top_srcdir)/src/lib/ecore_txt \ +-I$(top_srcdir)/src/lib/ecore_x \ +-I$(top_builddir)/src/lib/ecore \ +-I$(top_builddir)/src/lib/ecore_txt \ +-I$(top_builddir)/src/lib/ecore_x + +noinst_LTLIBRARIES = libecore_x_xlib.la + +libecore_x_xlib_la_SOURCES = \ +ecore_x.c \ +ecore_x_dnd.c \ +ecore_x_sync.c \ +ecore_x_randr.c \ +ecore_x_fixes.c \ +ecore_x_damage.c \ +ecore_x_composite.c \ +ecore_x_error.c \ +ecore_x_events.c \ +ecore_x_icccm.c \ +ecore_x_netwm.c \ +ecore_x_mwm.c \ +ecore_x_e.c \ +ecore_x_selection.c \ +ecore_x_window.c \ +ecore_x_window_prop.c \ +ecore_x_window_shape.c \ +ecore_x_pixmap.c \ +ecore_x_gc.c \ +ecore_x_xinerama.c \ +ecore_x_screensaver.c \ +ecore_x_dpms.c \ +ecore_x_drawable.c \ +ecore_x_cursor.c \ +ecore_x_test.c \ +ecore_x_atoms.c + +libecore_x_xlib_la_LIBADD = \ +@Xcursor_libs@ \ +@XDAMAGE_LIBS@ \ +@XCOMPOSITE_LIBS@ \ +@XDPMS_LIBS@ \ +@XFIXES_LIBS@ \ +@XINERAMA_LIBS@ \ +@XPRINT_LIBS@ \ +@XRANDR_LIBS@ \ +@XRENDER_LIBS@ \ +@XSS_LIBS@ \ +@XTEST_LIBS@ \ +@x_libs@ \ +$(top_builddir)/src/lib/ecore/libecore.la \ +$(top_builddir)/src/lib/ecore_txt/libecore_txt.la + +libecore_x_xlib_la_LDFLAGS = -version-info @version_info@ + +libecore_x_xlib_la_DEPENDENCIES = \ +$(top_builddir)/src/lib/ecore/libecore.la \ +$(top_builddir)/src/lib/ecore_txt/libecore_txt.la + +endif + +EXTRA_DIST = ecore_x_private.h diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_atoms.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_atoms.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_atoms.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_composite.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_composite.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_composite.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_composite.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_cursor.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_cursor.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_cursor.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_cursor.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_damage.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_damage.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_damage.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_damage.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_dnd.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_dnd.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_dnd.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_dnd.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_dpms.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_dpms.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_dpms.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_dpms.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_drawable.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_drawable.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_drawable.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_drawable.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_e.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_e.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_e.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_e.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_error.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_error.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_error.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_error.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_events.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_events.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_fixes.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_fixes.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_fixes.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_fixes.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_gc.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_gc.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_gc.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_gc.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_icccm.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_icccm.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_icccm.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_icccm.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_mwm.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_mwm.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_mwm.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_mwm.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_netwm.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_netwm.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_pixmap.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_pixmap.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_pixmap.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_pixmap.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_private.h b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_private.h similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_private.h rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_private.h diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_randr.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_randr.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_randr.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_randr.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_screensaver.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_screensaver.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_screensaver.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_screensaver.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_selection.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_selection.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_selection.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_selection.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_sync.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_sync.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_sync.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_sync.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_test.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_test.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_test.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_test.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_window.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_window.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_window.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_window.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_window_prop.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_window_prop.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_window_prop.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_window_prop.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_window_shape.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_window_shape.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_window_shape.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_window_shape.c diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_xinerama.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_xinerama.c similarity index 100% rename from legacy/ecore/src/lib/ecore_x/ecore_x_xinerama.c rename to legacy/ecore/src/lib/ecore_x/xlib/ecore_x_xinerama.c