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
This commit is contained in:
doursse 2008-07-23 10:00:01 +00:00 committed by doursse
parent 9e2cace719
commit ef61dbeb14
61 changed files with 694 additions and 577 deletions

View File

@ -231,10 +231,18 @@ AC_ARG_ENABLE(simple-x11,
[ want_evas_simple_x11=$enableval ] [ want_evas_simple_x11=$enableval ]
) )
dnl ecore_x{cb} have_x="no"
have_ecore_x="no" have_ecore_x="no"
have_ecore_x_xlib="no"
have_ecore_x_xcb="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_ARG_ENABLE(ecore-x-xcb,
AC_HELP_STRING( AC_HELP_STRING(
[--enable-ecore-x-xcb], [--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 if test "x$have_ecore_x_xcb" = "xyes" ; then
PKG_CHECK_MODULES(XCB_COMPOSITE, xcb-composite, PKG_CHECK_MODULES(XCB_COMPOSITE, xcb-composite,
[ have_ecore_x_xcb_composite="yes" [ 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" ]) [ have_ecore_x_xcb_composite="no" ])
PKG_CHECK_MODULES(XCB_DAMAGE, xcb-damage, PKG_CHECK_MODULES(XCB_DAMAGE, xcb-damage,
[ have_ecore_x_xcb_damage="yes" [ 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" ]) [ have_ecore_x_xcb_damage="no" ])
PKG_CHECK_MODULES(XCB_DPMS, xcb-dpms, PKG_CHECK_MODULES(XCB_DPMS, xcb-dpms,
[ have_ecore_x_xcb_dpms="yes" [ 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" ]) [ have_ecore_x_xcb_dpms="no" ])
PKG_CHECK_MODULES(XCB_RANDR, xcb-randr, PKG_CHECK_MODULES(XCB_RANDR, xcb-randr,
[ have_ecore_x_xcb_randr="yes" [ 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" ]) [ have_ecore_x_xcb_randr="no" ])
PKG_CHECK_MODULES(XCB_RENDER, xcb-render, PKG_CHECK_MODULES(XCB_RENDER, xcb-render,
[ have_ecore_x_xcb_render="yes" [ 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" ]) [ have_ecore_x_xcb_render="no" ])
PKG_CHECK_MODULES(XCB_SCREENSAVER, xcb-screensaver, PKG_CHECK_MODULES(XCB_SCREENSAVER, xcb-screensaver,
[ have_ecore_x_xcb_screensaver="yes" [ 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" ]) [ have_ecore_x_xcb_screensaver="no" ])
PKG_CHECK_MODULES(XCB_SHAPE, xcb-shape, PKG_CHECK_MODULES(XCB_SHAPE, xcb-shape,
[ have_ecore_x_xcb_shape="yes" [ 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" ]) [ have_ecore_x_xcb_shape="no" ])
PKG_CHECK_MODULES(XCB_SYNC, xcb-sync, PKG_CHECK_MODULES(XCB_SYNC, xcb-sync,
[ have_ecore_x_xcb_sync="yes" [ 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" ]) [ have_ecore_x_xcb_sync="no" ])
PKG_CHECK_MODULES(XCB_XFIXES, xcb-xfixes, PKG_CHECK_MODULES(XCB_XFIXES, xcb-xfixes,
[ have_ecore_x_xcb_xfixes="yes" [ 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" ]) [ have_ecore_x_xcb_xfixes="no" ])
PKG_CHECK_MODULES(XCB_XINERAMA, xcb-xinerama, PKG_CHECK_MODULES(XCB_XINERAMA, xcb-xinerama,
[ have_ecore_x_xcb_xinerama="yes" [ 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" ]) [ have_ecore_x_xcb_xinerama="no" ])
PKG_CHECK_MODULES(XCB_XPRINT, xcb-xprint, PKG_CHECK_MODULES(XCB_XPRINT, xcb-xprint,
[ have_ecore_x_xcb_xprint="yes" [ 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" ]) [ have_ecore_x_xcb_xprint="no" ])
PKG_CHECK_MODULES(XCB_XTEST, xcb-xtest, PKG_CHECK_MODULES(XCB_XTEST, xcb-xtest,
[ have_ecore_x_xcb_xtest="yes" [ 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" ]) [ 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 is enabled.])
AC_DEFINE(HAVE_ECORE_X_XCB, 1, [Defined to 1 if XCB backend 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_xcb_define="-DHAVE_ECORE_X_XCB"
have_ecore_x="yes"
AC_SUBST(have_ecore_x_xcb_define) AC_SUBST(have_ecore_x_xcb_define)
fi fi
fi fi
x_dir=""; if ! test "x$have_ecore_x_xcb" = "xyes" ; then
x_includes="";
x_cflags="";
x_libs="";
if test "x$have_ecore_x_xcb" != "xyes" ; then
have_x="no"
AC_PATH_XTRA AC_PATH_XTRA
AC_CHECK_HEADER(X11/X.h, AC_CHECK_HEADER(X11/X.h,
[ [
have_x="yes"
if test "x$want_evas_simple_x11" = "xyes"; then if test "x$want_evas_simple_x11" = "xyes"; then
x_libs="${x_libs} -lX11 -lXext" x_libs="${x_libs} -lX11 -lXext"
else 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_cflags=${x_cflags:--I${x_includes:-$x_dir/include}}
x_libs="${x_libs:--L${x_libraries:-$x_dir/lib}} -lX11 -lXext" x_libs="${x_libs:--L${x_libraries:-$x_dir/lib}} -lX11 -lXext"
fi fi
have_ecore_x_xlib="yes"
] ]
) )
AC_SUBST(x_cflags) if test "x$have_ecore_x_xlib" = "xyes"; then
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
Xcursor_libs="" Xcursor_libs=""
Xcursor_cflags="" Xcursor_cflags=""
use_Xcursor="no" 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([Xrender], [Xrender.h], [Xrender], [XRenderFindVisualFormat])
ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], [XTestFakeKeyEvent]) ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], [XTestFakeKeyEvent])
ECORE_CHECK_X_EXTENSION([Xss], [scrnsaver.h], [Xss], [XScreenSaverSelectInput]) 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
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 dnl ecore_evas_x11
have_ecore_evas_x11="no" have_ecore_evas_software_x11="no"
have_ecore_evas_x11_gl="no"; have_ecore_evas_xrender_x11="no";
have_ecore_evas_xrender="no"; have_ecore_evas_opengl_x11="no";
have_ecore_evas_x11_16="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 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 dnl ecore_evas_x Xlib
PKG_CHECK_MODULES(EVAS_SOFTWARE_X11, evas-software-x11, [ if test "x$have_ecore_x_xlib" = "xyes"; then
AC_DEFINE(BUILD_ECORE_EVAS_X11, 1, [Support for X11 Engine in Ecore_Evas]) want_ecore_evas_software_x11="yes"
have_ecore_evas_x11="yes"; dnl disabling this will make things go haywire
], [ #AC_ARG_ENABLE(ecore-evas-x11,
have_ecore_evas_x11="no"; # AC_HELP_STRING(
]) # [--enable-ecore-evas-x11],
fi # [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 if test "x$want_ecore_evas_software_x11" = "xyes"; then
want_ecore_evas_x11_gl=yes PKG_CHECK_MODULES(EVAS_SOFTWARE_X11, evas-software-x11, [
AC_ARG_ENABLE(ecore-evas-x11-gl, AC_DEFINE(BUILD_ECORE_EVAS_SOFTWARE_X11, 1, [Support for Software Xlib Engine in Ecore_Evas])
AC_HELP_STRING( have_ecore_evas_software_x11="yes";
[--enable-ecore-evas-x11-gl], ], [
[enable X11 GL support in the ecore_evas module.] have_ecore_evas_software_x11="no";
), ])
[ want_ecore_evas_x11_gl=$enableval ] fi
)
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_x11_gl" = "xyes"; then dnl ecore_evas_opengl_x11
PKG_CHECK_MODULES(EVAS_OPENGL_X11, evas-opengl-x11, [ want_ecore_evas_opengl_x11=yes
AC_DEFINE(BUILD_ECORE_EVAS_X11_GL, 1, [Support for GL Engine in Ecore_Evas]) AC_ARG_ENABLE(ecore-evas-opengl-x11,
have_ecore_evas_x11_gl="yes"; AC_HELP_STRING(
], [ [--enable-ecore-evas-opengl-x11],
have_ecore_evas_x11_gl="no" [enable OpenGL Xlib support in the ecore_evas module.]
]) ),
fi [ want_ecore_evas_opengl_x11=$enableval ]
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";
]
) )
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 fi
if test "x$have_ecore_evas_x11" = "xyes" -o \ if test "x$have_ecore_evas_software_x11" = "xyes" -o \
"x$have_ecore_evas_x11_gl" = "yes" -o \ "x$have_ecore_evas_opengl_x11" = "yes" -o \
"x$have_ecore_evas_xrender" = "yes" -o \ "x$have_ecore_evas_xrender_x11" = "yes" -o \
"x$have_ecore_evas_x11_16" = "yes"; then "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" requirements_ecore_evas="$requirements_ecore_evas ecore-x"
fi fi
fi fi
dnl ecore_win32 dnl ecore_win32
@ -786,16 +817,9 @@ AC_SUBST(requirements_ecore_x)
AC_SUBST(requirements_ecore_sdl) AC_SUBST(requirements_ecore_sdl)
# set up conditionals # 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_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([ AC_OUTPUT([
Makefile Makefile
@ -822,6 +846,8 @@ src/lib/Makefile
src/lib/ecore/Makefile src/lib/ecore/Makefile
src/lib/ecore_job/Makefile src/lib/ecore_job/Makefile
src/lib/ecore_x/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_fb/Makefile
src/lib/ecore_sdl/Makefile src/lib/ecore_sdl/Makefile
src/lib/ecore_evas/Makefile src/lib/ecore_evas/Makefile
@ -873,22 +899,22 @@ echo
echo " Graphic systems:" echo " Graphic systems:"
echo echo
if test "x$have_ecore_x_xcb" = "xyes" ; then if test "x$have_ecore_x" = "xyes" ; then
echo " Ecore_X (XCB backend)........: $have_ecore_x_xcb" if test "x$have_ecore_x_xcb" = "xyes" ; then
echo " Xprint.....................: $have_ecore_x_xcb_xprint" echo " Ecore_X (XCB backend)........: $have_ecore_x_xcb"
echo " Xinerama...................: $have_ecore_x_xcb_xinerama" echo " Xprint.....................: $have_ecore_x_xcb_xprint"
echo " Xrandr.....................: $have_ecore_x_xcb_randr" echo " Xinerama...................: $have_ecore_x_xcb_xinerama"
echo " Xscreensaver...............: $have_ecore_x_xcb_screensaver" echo " Xrandr.....................: $have_ecore_x_xcb_randr"
echo " Xshape.....................: $have_ecore_x_xcb_shape" echo " Xscreensaver...............: $have_ecore_x_xcb_screensaver"
echo " Xsync......................: $have_ecore_x_xcb_sync" echo " Xshape.....................: $have_ecore_x_xcb_shape"
echo " Xrender....................: $have_ecore_x_xcb_render" echo " Xsync......................: $have_ecore_x_xcb_sync"
echo " Xcomposite.................: $have_ecore_x_xcb_composite" echo " Xrender....................: $have_ecore_x_xcb_render"
echo " Xfixes.....................: $have_ecore_x_xcb_xfixes" echo " Xcomposite.................: $have_ecore_x_xcb_composite"
echo " Xdamage....................: $have_ecore_x_xcb_damage" echo " Xfixes.....................: $have_ecore_x_xcb_xfixes"
echo " Xdpms......................: $have_ecore_x_xcb_dpms" echo " Xdamage....................: $have_ecore_x_xcb_damage"
echo " Xtest......................: $have_ecore_x_xcb_xtest" echo " Xdpms......................: $have_ecore_x_xcb_dpms"
else echo " Xtest......................: $have_ecore_x_xcb_xtest"
if test "x$have_ecore_x" = "xyes" ; then else
echo " Ecore_X (Xlib backend).......: $have_ecore_x" echo " Ecore_X (Xlib backend).......: $have_ecore_x"
echo " Xcursor....................: $use_Xcursor" echo " Xcursor....................: $use_Xcursor"
echo " Xprint.....................: $use_xprint" echo " Xprint.....................: $use_xprint"
@ -901,9 +927,9 @@ else
echo " Xdamage....................: $use_xdamage" echo " Xdamage....................: $use_xdamage"
echo " Xdpms......................: $use_xdpms" echo " Xdpms......................: $use_xdpms"
echo " Xtest......................: $use_xtest" echo " Xtest......................: $use_xtest"
else
echo " Ecore_X......................: $have_ecore_x"
fi fi
else
echo " Ecore_X......................: $have_ecore_x"
fi fi
echo " Ecore_Win32..................: $have_ecore_win32" echo " Ecore_Win32..................: $have_ecore_win32"
echo " Ecore_SDL....................: $have_ecore_sdl" echo " Ecore_SDL....................: $have_ecore_sdl"
@ -918,16 +944,18 @@ echo
echo " Ecore_Evas...................: $have_ecore_evas" echo " Ecore_Evas...................: $have_ecore_evas"
if test "x$have_ecore_evas" = "xyes" ; then if test "x$have_ecore_evas" = "xyes" ; then
echo " Software Memory Buffer.....: $have_ecore_evas_buffer" echo " Software Memory Buffer.....: $have_ecore_evas_buffer"
echo " Software X11...............: $have_ecore_evas_x11" echo " Software X11...............: $have_ecore_evas_software_x11"
echo " XRender X11................: $have_ecore_evas_xrender" echo " XRender X11................: $have_ecore_evas_xrender_x11"
echo " OpenGL X11.................: $have_ecore_evas_x11_gl" 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 " Software DirectDraw........: $have_ecore_evas_software_ddraw"
echo " Direct3D...................: $have_ecore_evas_direct3d" echo " Direct3D...................: $have_ecore_evas_direct3d"
echo " OpenGL Glew................: $have_ecore_evas_opengl_glew" echo " OpenGL Glew................: $have_ecore_evas_opengl_glew"
echo " Software SDL...............: $have_ecore_evas_sdl" echo " Software SDL...............: $have_ecore_evas_sdl"
echo " DirectFB...................: $have_ecore_evas_dfb" echo " DirectFB...................: $have_ecore_evas_dfb"
echo " Software Framebuffer.......: $have_ecore_evas_fb" 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 DirectDraw..: $have_ecore_evas_software_16_ddraw"
echo " Software 16bit WinCE.......: $have_ecore_evas_software_16_wince" echo " Software 16bit WinCE.......: $have_ecore_evas_software_16_wince"
fi fi

View File

@ -68,18 +68,20 @@ extern "C" {
typedef enum _Ecore_Evas_Engine_Type 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_BUFFER,
ECORE_EVAS_ENGINE_SOFTWARE_X11,
ECORE_EVAS_ENGINE_XRENDER_X11, ECORE_EVAS_ENGINE_XRENDER_X11,
ECORE_EVAS_ENGINE_DIRECTFB, ECORE_EVAS_ENGINE_OPENGL_X11,
ECORE_EVAS_ENGINE_SOFTWARE_X11_16, ECORE_EVAS_ENGINE_SOFTWARE_XCB,
ECORE_EVAS_ENGINE_XRENDER_XCB,
ECORE_EVAS_ENGINE_SOFTWARE_DDRAW, ECORE_EVAS_ENGINE_SOFTWARE_DDRAW,
ECORE_EVAS_ENGINE_SOFTWARE_16_DDRAW,
ECORE_EVAS_ENGINE_DIRECT3D, ECORE_EVAS_ENGINE_DIRECT3D,
ECORE_EVAS_ENGINE_OPENGL_GLEW, ECORE_EVAS_ENGINE_OPENGL_GLEW,
ECORE_EVAS_ENGINE_SDL, 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_SOFTWARE_16_WINCE,
} Ecore_Evas_Engine_Type; } Ecore_Evas_Engine_Type;

View File

@ -23,45 +23,38 @@ ecore_evas_engine_type_supported_get(Ecore_Evas_Engine_Type engine)
{ {
switch (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: case ECORE_EVAS_ENGINE_SOFTWARE_BUFFER:
#ifdef BUILD_ECORE_EVAS_BUFFER #ifdef BUILD_ECORE_EVAS_BUFFER
return 1; return 1;
#else #else
return 0; return 0;
#endif #endif
case ECORE_EVAS_ENGINE_DIRECTFB: case ECORE_EVAS_ENGINE_SOFTWARE_X11:
#ifdef BUILD_ECORE_EVAS_DIRECTFB #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; return 1;
#else #else
return 0; return 0;
@ -89,6 +82,25 @@ ecore_evas_engine_type_supported_get(Ecore_Evas_Engine_Type engine)
return 1; return 1;
#else #else
return 0; 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 #endif
case ECORE_EVAS_ENGINE_SOFTWARE_16_DDRAW: case ECORE_EVAS_ENGINE_SOFTWARE_16_DDRAW:
#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW #ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW
@ -138,6 +150,9 @@ ecore_evas_shutdown(void)
#ifdef BUILD_ECORE_EVAS_X11 #ifdef BUILD_ECORE_EVAS_X11
while (_ecore_evas_x_shutdown()); while (_ecore_evas_x_shutdown());
#endif #endif
#ifdef BUILD_ECORE_EVAS_WIN32
while (_ecore_evas_win32_shutdown());
#endif
#ifdef BUILD_ECORE_EVAS_FB #ifdef BUILD_ECORE_EVAS_FB
while (_ecore_evas_fb_shutdown()); while (_ecore_evas_fb_shutdown());
#endif #endif
@ -147,7 +162,7 @@ ecore_evas_shutdown(void)
#ifdef BUILD_ECORE_EVAS_DIRECTFB #ifdef BUILD_ECORE_EVAS_DIRECTFB
while (_ecore_evas_directfb_shutdown()); while (_ecore_evas_directfb_shutdown());
#endif #endif
#ifdef BUILD_ECORE_EVAS_WINCE #ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE
while (_ecore_evas_wince_shutdown()); while (_ecore_evas_wince_shutdown());
#endif #endif
evas_shutdown(); evas_shutdown();

View File

@ -23,63 +23,69 @@
#define ECORE_MAGIC_EVAS 0x76543211 #define ECORE_MAGIC_EVAS 0x76543211
#ifndef BUILD_ECORE_DIRECTFB #ifndef BUILD_ECORE_DIRECTFB
#undef BUILD_ECORE_EVAS_DIRECTFB # undef BUILD_ECORE_EVAS_DIRECTFB
#endif #endif
#ifdef BUILD_ECORE_EVAS_X11 #ifdef BUILD_ECORE_EVAS_X11
# include "Ecore_X.h" # include "Ecore_X.h"
# ifdef HAVE_ECORE_X_XCB # ifdef HAVE_ECORE_X_XCB
# include <Evas_Engine_Software_Xcb.h>
# include <xcb/xcb.h> # include <xcb/xcb.h>
# ifdef ECORE_XCB_RENDER # ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB
# include <xcb/render.h> # include <Evas_Engine_Software_Xcb.h>
# endif # endif
# ifdef BUILD_ECORE_EVAS_XRENDER # ifdef BUILD_ECORE_EVAS_XRENDER_XCB
# include <xcb/render.h>
# include <Evas_Engine_XRender_Xcb.h> # include <Evas_Engine_XRender_Xcb.h>
# endif # endif
# else # endif
# include <Evas_Engine_Software_X11.h> # ifdef HAVE_ECORE_X_XLIB
# include <X11/Xlib.h> # include <X11/Xlib.h>
# include <X11/Xutil.h> # include <X11/Xutil.h>
# ifdef ECORE_XRENDER # ifdef BUILD_ECORE_EVAS_SOFTWARE_X11
# include <Evas_Engine_Software_X11.h>
# endif
# ifdef BUILD_ECORE_EVAS_XRENDER_X11
# include <X11/extensions/Xrender.h> # include <X11/extensions/Xrender.h>
# endif
# ifdef BUILD_ECORE_EVAS_X11_GL
# include <Evas_Engine_GL_X11.h>
# endif
# ifdef BUILD_ECORE_EVAS_XRENDER
# include <Evas_Engine_XRender_X11.h> # include <Evas_Engine_XRender_X11.h>
# endif # endif
# ifdef BUILD_ECORE_EVAS_OPENGL_X11
# include <Evas_Engine_GL_X11.h>
# endif
# ifdef BUILD_ECORE_EVAS_X11_16 # ifdef BUILD_ECORE_EVAS_X11_16
# include <Evas_Engine_Software_16_X11.h> # include <Evas_Engine_Software_16_X11.h>
# endif # endif
# endif /* HAVE_ECORE_X_XCB */ # endif
#endif #endif
#ifdef BUILD_ECORE_EVAS_FB #ifdef BUILD_ECORE_EVAS_FB
# include <Evas_Engine_FB.h> # include <Evas_Engine_FB.h>
#endif #endif
#ifdef BUILD_ECORE_EVAS_DIRECTFB #ifdef BUILD_ECORE_EVAS_DIRECTFB
# include <Evas_Engine_DirectFB.h> # include <Evas_Engine_DirectFB.h>
# include "Ecore_DirectFB.h" # include "Ecore_DirectFB.h"
#endif #endif
#ifdef BUILD_ECORE_EVAS_BUFFER #ifdef BUILD_ECORE_EVAS_BUFFER
# include <Evas_Engine_Buffer.h> # include <Evas_Engine_Buffer.h>
#endif #endif
#ifdef BUILD_ECORE_EVAS_WIN32 #ifdef BUILD_ECORE_EVAS_WIN32
# include "Ecore_Win32.h" # include "Ecore_Win32.h"
# ifdef BUILD_ECORE_EVAS_SOFTWARE_DDRAW # ifdef BUILD_ECORE_EVAS_SOFTWARE_DDRAW
# include <Evas_Engine_Software_DDraw.h> # include <Evas_Engine_Software_DDraw.h>
# endif # endif
# ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW
# include <Evas_Engine_Software_16_DDraw.h>
# endif
# ifdef BUILD_ECORE_EVAS_DIRECT3D # ifdef BUILD_ECORE_EVAS_DIRECT3D
# include <Evas_Engine_Direct3D.h> # include <Evas_Engine_Direct3D.h>
# endif # endif
# ifdef BUILD_ECORE_EVAS_OPENGL_GLEW # ifdef BUILD_ECORE_EVAS_OPENGL_GLEW
# include <Evas_Engine_GL_Glew.h> # include <Evas_Engine_GL_Glew.h>
# endif # endif
# ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW
# include <Evas_Engine_Software_16_DDraw.h>
# endif
#endif #endif
#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE #ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE
# include "Ecore_WinCE.h" # include "Ecore_WinCE.h"
# include <Evas_Engine_Software_16_WinCE.h> # include <Evas_Engine_Software_16_WinCE.h>
@ -146,7 +152,7 @@ struct _Ecore_Evas_Engine
{ {
Ecore_Evas_Engine_Func *func; Ecore_Evas_Engine_Func *func;
#ifdef BUILD_ECORE_EVAS_X11 #if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_SOFTWARE_XCB)
struct { struct {
Ecore_X_Window win_root; Ecore_X_Window win_root;
Ecore_X_Window win; Ecore_X_Window win;
@ -154,11 +160,11 @@ struct _Ecore_Evas_Engine
Ecore_X_Pixmap pmap; Ecore_X_Pixmap pmap;
Ecore_X_Pixmap mask; Ecore_X_Pixmap mask;
Ecore_X_GC gc; Ecore_X_GC gc;
#ifdef HAVE_ECORE_X_XCB #ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB
#warning [XCB] No Region code # warning [XCB] No Region code
#else #else
Region damages; Region damages;
#endif /* HAVE_ECORE_X_XCB */ #endif /* ! BUILD_ECORE_EVAS_SOFTWARE_XCB */
int px, py, pw, ph; int px, py, pw, ph;
unsigned char direct_resize : 1; unsigned char direct_resize : 1;
unsigned char using_bg_pixmap : 1; unsigned char using_bg_pixmap : 1;

File diff suppressed because it is too large Load Diff

View File

@ -1,199 +1,36 @@
MAINTAINERCLEANFILES = Makefile.in MAINTAINERCLEANFILES = Makefile.in
if BUILD_ECORE_X_XCB SUBDIRS = xlib 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
if BUILD_ECORE_X 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 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 = \ include_HEADERS = \
Ecore_X.h \ Ecore_X.h \
Ecore_X_Atoms.h \ Ecore_X_Atoms.h \
Ecore_X_Cursor.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
endif EXTRA_DIST = ecore_x_atoms_decl.h
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

View File

@ -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

View File

@ -244,7 +244,9 @@ ecore_x_init(const char *name)
#ifdef ECORE_XCB_SYNC #ifdef ECORE_XCB_SYNC
xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_sync_id); 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 */ #endif /* ECORE_XCB_SYNC */
#ifdef ECORE_XCB_FIXES #ifdef ECORE_XCB_FIXES

View File

@ -60,7 +60,7 @@ ecore_x_cursor_new(Ecore_X_Window window,
#endif /* ECORE_XCB_CURSOR */ #endif /* ECORE_XCB_CURSOR */
{ {
const uint32_t dither[2][2] = const uint32_t dither[2][2] =
{ {
{0, 2}, {0, 2},
{3, 1} {3, 1}
}; };
@ -91,11 +91,11 @@ ecore_x_cursor_new(Ecore_X_Window window,
1, mask, draw, 1, mask, draw,
1, 1); 1, 1);
image = xcb_image_create(_ecore_xcb_conn, 1, image = xcb_image_create_native(_ecore_xcb_conn, w, h,
XCB_IMAGE_FORMAT_Z_PIXMAP, 0, XCB_IMAGE_FORMAT_Z_PIXMAP,
NULL, w, h, 32, 0); 32, NULL, ~0, NULL);
image->data = malloc(image->bytes_per_line * image->height); image->data = malloc(image->size);
fr = 0x00; fg = 0x00; fb = 0x00; fr = 0x00; fg = 0x00; fb = 0x00;
br = 0xff; bg = 0xff; bb = 0xff; br = 0xff; bg = 0xff; bb = 0xff;
pix = (uint32_t *)pixels; pix = (uint32_t *)pixels;
@ -104,7 +104,7 @@ ecore_x_cursor_new(Ecore_X_Window window,
for (x = 0; x < w; x++) for (x = 0; x < w; x++)
{ {
uint8_t r, g, b, a; uint8_t r, g, b, a;
a = (pix[0] >> 24) & 0xff; a = (pix[0] >> 24) & 0xff;
r = (pix[0] >> 16) & 0xff; r = (pix[0] >> 16) & 0xff;
g = (pix[0] >> 8 ) & 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) if ((uint32_t)(r + g + b) > brightest)
{ {
brightest = r + g + b; brightest = r + g + b;
br = r; br = r;
bg = g; bg = g;
bb = b; bb = b;
} }
if ((uint32_t)(r + g + b) < darkest) if ((uint32_t)(r + g + b) < darkest)
{ {
darkest = r + g + b; darkest = r + g + b;
fr = r; fr = r;
fg = g; fg = g;
fb = b; fb = b;
@ -129,7 +129,7 @@ ecore_x_cursor_new(Ecore_X_Window window,
pix++; pix++;
} }
} }
pix = (uint32_t *)pixels; pix = (uint32_t *)pixels;
for (y = 0; y < h; y++) for (y = 0; y < h; y++)
{ {
@ -138,15 +138,15 @@ ecore_x_cursor_new(Ecore_X_Window window,
uint32_t v; uint32_t v;
uint8_t r, g, b; uint8_t r, g, b;
int32_t d1, d2; int32_t d1, d2;
r = (pix[0] >> 16) & 0xff; r = (pix[0] >> 16) & 0xff;
g = (pix[0] >> 8 ) & 0xff; g = (pix[0] >> 8 ) & 0xff;
b = (pix[0] ) & 0xff; b = (pix[0] ) & 0xff;
d1 = d1 =
((r - fr) * (r - fr)) + ((r - fr) * (r - fr)) +
((g - fg) * (g - fg)) + ((g - fg) * (g - fg)) +
((b - fb) * (b - fb)); ((b - fb) * (b - fb));
d2 = d2 =
((r - br) * (r - br)) + ((r - br) * (r - br)) +
((g - bg) * (g - bg)) + ((g - bg) * (g - bg)) +
((b - bb) * (b - bb)); ((b - bb) * (b - bb));
@ -167,7 +167,7 @@ ecore_x_cursor_new(Ecore_X_Window window,
draw = pixmap; draw = pixmap;
gc = xcb_generate_id(_ecore_xcb_conn); gc = xcb_generate_id(_ecore_xcb_conn);
xcb_create_gc(_ecore_xcb_conn, gc, draw, 0, NULL); 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); xcb_free_gc(_ecore_xcb_conn, gc);
pix = (uint32_t *)pixels; pix = (uint32_t *)pixels;
@ -176,7 +176,7 @@ ecore_x_cursor_new(Ecore_X_Window window,
for (x = 0; x < w; x++) for (x = 0; x < w; x++)
{ {
uint32_t v; uint32_t v;
v = (((pix[0] >> 24) & 0xff) * 5) / 256; v = (((pix[0] >> 24) & 0xff) * 5) / 256;
if (v > dither[x & 0x1][y & 0x1]) v = 1; if (v > dither[x & 0x1][y & 0x1]) v = 1;
else v = 0; else v = 0;
@ -187,9 +187,9 @@ ecore_x_cursor_new(Ecore_X_Window window,
draw = mask; draw = mask;
gc = xcb_generate_id(_ecore_xcb_conn); gc = xcb_generate_id(_ecore_xcb_conn);
xcb_create_gc (_ecore_xcb_conn, gc, draw, 0, NULL); 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); xcb_free_gc(_ecore_xcb_conn, gc);
free(image->data); free(image->data);
image->data = NULL; image->data = NULL;
xcb_image_destroy(image); xcb_image_destroy(image);
@ -204,7 +204,7 @@ ecore_x_cursor_new(Ecore_X_Window window,
bg << 8 | bg, bg << 8 | bg,
bb << 8 | bb, bb << 8 | bb,
hot_x, hot_x,
hot_y); hot_y);
xcb_free_pixmap(_ecore_xcb_conn, pixmap); xcb_free_pixmap(_ecore_xcb_conn, pixmap);
xcb_free_pixmap(_ecore_xcb_conn, mask); xcb_free_pixmap(_ecore_xcb_conn, mask);

View File

@ -350,6 +350,8 @@ _ecore_x_event_handle_button_press(xcb_generic_event_t *event)
e->win = ev->event; e->win = ev->event;
e->event_win = ev->event; e->event_win = ev->event;
e->same_screen = ev->same_screen;
e->root_win = ev->root;
e->time = ev->time; e->time = ev->time;
_ecore_xcb_event_last_time = e->time; _ecore_xcb_event_last_time = e->time;
_ecore_xcb_event_last_window = e->win; _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; e->root.y = ev->root_y;
if (ev->child) e->win = ev->child; if (ev->child) e->win = ev->child;
else e->win = ev->event; else e->win = ev->event;
e->same_screen = ev->same_screen;
e->root_win = ev->root;
e->event_win = ev->event; e->event_win = ev->event;
e->time = ev->time; e->time = ev->time;
_ecore_xcb_event_last_time = e->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; e->root.y = ev->root_y;
if (ev->child) e->win = ev->child; if (ev->child) e->win = ev->child;
else e->win = ev->event; else e->win = ev->event;
e->same_screen = ev->same_screen;
e->root_win = ev->root;
e->event_win = ev->event; e->event_win = ev->event;
e->time = ev->time; e->time = ev->time;
if (e->win == e->event_win) 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; e->root.y = ev->root_y;
if (ev->child) e->win = ev->child; if (ev->child) e->win = ev->child;
else e->win = ev->event; else e->win = ev->event;
e->same_screen = ev->same_screen;
e->root_win = ev->root;
e->event_win = ev->event; e->event_win = ev->event;
e->time = ev->time; e->time = ev->time;
_ecore_xcb_event_last_time = e->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; e->root.y = ev->root_y;
if (ev->child) e->win = ev->child; if (ev->child) e->win = ev->child;
else e->win = ev->event; else e->win = ev->event;
e->same_screen = ev->same_screen;
e->root_win = ev->root;
e->event_win = ev->event; e->event_win = ev->event;
e->time = ev->time; e->time = ev->time;
_ecore_xcb_mouse_up_count++; _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; e->root.y = ev->root_y;
if (ev->child) e->win = ev->child; if (ev->child) e->win = ev->child;
else e->win = ev->event; else e->win = ev->event;
e->same_screen = ev->same_screen;
e->root_win = ev->root;
e->event_win = ev->event; e->event_win = ev->event;
e->time = ev->time; e->time = ev->time;
_ecore_xcb_event_last_time = e->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; _ecore_xcb_event_last_root_y = e->root.y;
/* Xdnd handling */ /* 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); 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; e->root.y = ev->root_y;
if (ev->child) e->win = ev->child; if (ev->child) e->win = ev->child;
else e->win = ev->event; else e->win = ev->event;
e->same_screen = ev->same_screen_focus;
e->root_win = ev->root;
e->event_win = ev->event; e->event_win = ev->event;
e->time = ev->time; e->time = ev->time;
_ecore_xcb_event_last_time = e->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; e->root.y = ev->root_y;
if (ev->child) e->win = ev->child; if (ev->child) e->win = ev->child;
else e->win = ev->event; else e->win = ev->event;
e->same_screen = ev->same_screen_focus;
e->root_win = ev->root;
e->event_win = ev->event; e->event_win = ev->event;
switch (ev->mode) { switch (ev->mode) {
case XCB_NOTIFY_MODE_NORMAL: 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; e->root.y = ev->root_y;
if (ev->child) e->win = ev->child; if (ev->child) e->win = ev->child;
else e->win = ev->event; else e->win = ev->event;
e->same_screen = ev->same_screen_focus;
e->root_win = ev->root;
e->event_win = ev->event; e->event_win = ev->event;
e->time = ev->time; e->time = ev->time;
_ecore_xcb_event_last_time = e->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; e->root.y = ev->root_y;
if (ev->child) e->win = ev->child; if (ev->child) e->win = ev->child;
else e->win = ev->event; else e->win = ev->event;
e->same_screen = ev->same_screen_focus;
e->root_win = ev->root;
e->event_win = ev->event; e->event_win = ev->event;
switch (ev->mode) { switch (ev->mode) {
case XCB_NOTIFY_MODE_NORMAL: case XCB_NOTIFY_MODE_NORMAL:
@ -767,7 +787,7 @@ _ecore_x_event_handle_leave_notify(xcb_generic_event_t *event)
void void
_ecore_x_event_handle_focus_in(xcb_generic_event_t *event) _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; Ecore_X_Event_Window_Focus_In *e;
ev = (xcb_focus_in_event_t *)event; 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->border = ev->border_width;
e->override = ev->override_redirect; e->override = ev->override_redirect;
/* send_event is bit 7 (0x80) of response_type */ /* 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; e->time = _ecore_xcb_event_last_time;
ecore_event_add(ECORE_X_EVENT_WINDOW_CONFIGURE, e, NULL, NULL); ecore_event_add(ECORE_X_EVENT_WINDOW_CONFIGURE, e, NULL, NULL);
} }

View File

@ -249,7 +249,8 @@ void _ecore_x_dnd_init (void);
void _ecore_x_dnd_shutdown (void); void _ecore_x_dnd_shutdown (void);
Ecore_X_DND_Source *_ecore_x_dnd_source_get (void); Ecore_X_DND_Source *_ecore_x_dnd_source_get (void);
Ecore_X_DND_Target *_ecore_x_dnd_target_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); int y);

View File

@ -28,7 +28,9 @@ _ecore_x_sync_init(const xcb_query_extension_reply_t *reply)
{ {
#ifdef ECORE_XCB_SYNC #ifdef ECORE_XCB_SYNC
if (reply && (reply->present)) 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 */ #endif /* ECORE_XCB_SYNC */
} }

View File

@ -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