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 ]
)
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

View File

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

View File

@ -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();

View File

@ -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 <Evas_Engine_Software_Xcb.h>
# include <xcb/xcb.h>
# ifdef ECORE_XCB_RENDER
# include <xcb/render.h>
# ifdef BUILD_ECORE_EVAS_SOFTWARE_XCB
# include <Evas_Engine_Software_Xcb.h>
# endif
# ifdef BUILD_ECORE_EVAS_XRENDER
# ifdef BUILD_ECORE_EVAS_XRENDER_XCB
# include <xcb/render.h>
# include <Evas_Engine_XRender_Xcb.h>
# endif
# else
# include <Evas_Engine_Software_X11.h>
# endif
# ifdef HAVE_ECORE_X_XLIB
# include <X11/Xlib.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>
# 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>
# endif
# ifdef BUILD_ECORE_EVAS_OPENGL_X11
# include <Evas_Engine_GL_X11.h>
# endif
# ifdef BUILD_ECORE_EVAS_X11_16
# include <Evas_Engine_Software_16_X11.h>
# endif
# endif /* HAVE_ECORE_X_XCB */
# endif
#endif
#ifdef BUILD_ECORE_EVAS_FB
# include <Evas_Engine_FB.h>
#endif
#ifdef BUILD_ECORE_EVAS_DIRECTFB
# include <Evas_Engine_DirectFB.h>
# include "Ecore_DirectFB.h"
#endif
#ifdef BUILD_ECORE_EVAS_BUFFER
# include <Evas_Engine_Buffer.h>
#endif
#ifdef BUILD_ECORE_EVAS_WIN32
# include "Ecore_Win32.h"
# ifdef BUILD_ECORE_EVAS_SOFTWARE_DDRAW
# include <Evas_Engine_Software_DDraw.h>
# endif
# ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW
# include <Evas_Engine_Software_16_DDraw.h>
# endif
# ifdef BUILD_ECORE_EVAS_DIRECT3D
# include <Evas_Engine_Direct3D.h>
# endif
# ifdef BUILD_ECORE_EVAS_OPENGL_GLEW
# include <Evas_Engine_GL_Glew.h>
# endif
# ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW
# include <Evas_Engine_Software_16_DDraw.h>
# endif
#endif
#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE
# include "Ecore_WinCE.h"
# include <Evas_Engine_Software_16_WinCE.h>
@ -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;

File diff suppressed because it is too large Load Diff

View File

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

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

View File

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

View File

@ -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);
}

View File

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

View File

@ -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 */
}

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