Ecore now checks whether the composite extension is available before trying to open an ARGB window.
SVN revision: 31986
This commit is contained in:
parent
4b4d4ca3b9
commit
75bd5e8902
|
@ -172,6 +172,11 @@ if test "x$want_ecore_x_xcb" = "xyes" ; then
|
||||||
[ have_ecore_x_xcb="no" ])
|
[ have_ecore_x_xcb="no" ])
|
||||||
|
|
||||||
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,
|
||||||
|
[ have_ecore_x_xcb_composite="yes"
|
||||||
|
AC_DEFINE(ECORE_XCB_COMPOSITE, 1, [Build support for XCB composite]) ],
|
||||||
|
[ 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]) ],
|
||||||
|
@ -290,6 +295,7 @@ if test "x$have_ecore_x" = "xyes"; then
|
||||||
AC_SUBST(Xcursor_cflags)
|
AC_SUBST(Xcursor_cflags)
|
||||||
AC_SUBST(Xcursor_libs)
|
AC_SUBST(Xcursor_libs)
|
||||||
|
|
||||||
|
ECORE_CHECK_X_EXTENSION([Xcomposite], [Xcomposite.h], [Xcomposite], [XCompositeQueryExtension])
|
||||||
ECORE_CHECK_X_EXTENSION([Xdamage], [Xdamage.h], [Xdamage], [XDamageSubtract])
|
ECORE_CHECK_X_EXTENSION([Xdamage], [Xdamage.h], [Xdamage], [XDamageSubtract])
|
||||||
ECORE_CHECK_X_EXTENSION([Xdpms], [dpms.h], [Xdpms], [DPMSQueryExtension])
|
ECORE_CHECK_X_EXTENSION([Xdpms], [dpms.h], [Xdpms], [DPMSQueryExtension])
|
||||||
if test "x$use_xdpms" = "xno" ; then
|
if test "x$use_xdpms" = "xno" ; then
|
||||||
|
@ -910,9 +916,9 @@ echo " Ecore_Job....................: $have_ecore_job"
|
||||||
echo " Ecore_Con....................: $have_ecore_con (OpenSSL: $use_openssl) (CURL: $use_curl)"
|
echo " Ecore_Con....................: $have_ecore_con (OpenSSL: $use_openssl) (CURL: $use_curl)"
|
||||||
echo " Ecore_Txt....................: $have_ecore_txt"
|
echo " Ecore_Txt....................: $have_ecore_txt"
|
||||||
if test "x$have_ecore_x_xcb" = "xyes" ; then
|
if test "x$have_ecore_x_xcb" = "xyes" ; then
|
||||||
echo " Ecore_X (XCB backend)........: $have_ecore_x_xcb (Xprint: $have_ecore_x_xcb_xprint) (Xinerama: $have_ecore_x_xcb_xinerama) (Xrandr: $have_ecore_x_xcb_randr) (Xscreensaver: $have_ecore_x_xcb_screensaver) (Xshape: $have_ecore_x_xcb_shape) (Xsync: $have_ecore_x_xcb_sync) (Xrender: $have_ecore_x_xcb_render) (Xfixes: $have_ecore_x_xcb_xfixes) (Xdamage: $have_ecore_x_xcb_damage) (Xdpms: $have_ecore_x_xcb_dpms)"
|
echo " Ecore_X (XCB backend)........: $have_ecore_x_xcb (Xprint: $have_ecore_x_xcb_xprint) (Xinerama: $have_ecore_x_xcb_xinerama) (Xrandr: $have_ecore_x_xcb_randr) (Xscreensaver: $have_ecore_x_xcb_screensaver) (Xshape: $have_ecore_x_xcb_shape) (Xsync: $have_ecore_x_xcb_sync) (Xrender: $have_ecore_x_xcb_render) (Xfixes: $have_ecore_x_xcb_xfixes) (Xcomposite: $have_ecore_x_xcb_composite) (Xdamage: $have_ecore_x_xcb_damage) (Xdpms: $have_ecore_x_xcb_dpms)"
|
||||||
else
|
else
|
||||||
echo " Ecore_X (Xlib backend).......: $have_ecore_x (Xcursor: $use_Xcursor) (Xprint: $use_xprint) (Xinerama: $use_xinerama) (Xrandr: $use_xrandr) (Xscreensaver: $use_xss) (Xrender: $use_xrender) (Xfixes: $use_xfixes) (Xdamage: $use_xdamage) (Xdpms: $use_xdpms)"
|
echo " Ecore_X (Xlib backend).......: $have_ecore_x (Xcursor: $use_Xcursor) (Xprint: $use_xprint) (Xinerama: $use_xinerama) (Xrandr: $use_xrandr) (Xscreensaver: $use_xss) (Xrender: $use_xrender) (Xcomposite: $use_xcomposite) (Xfixes: $use_xfixes) (Xdamage: $use_xdamage) (Xdpms: $use_xdpms)"
|
||||||
fi
|
fi
|
||||||
echo " Ecore_Win32..................: $have_ecore_win32 (DirectDraw: ${have_ddraw}) (Direct3D: ${have_direct3d})"
|
echo " Ecore_Win32..................: $have_ecore_win32 (DirectDraw: ${have_ddraw}) (Direct3D: ${have_direct3d})"
|
||||||
|
|
||||||
|
|
|
@ -1858,6 +1858,8 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
|
||||||
|
|
||||||
if (!einfo) return;
|
if (!einfo) return;
|
||||||
|
|
||||||
|
if (!ecore_x_composite_query()) return;
|
||||||
|
|
||||||
ee->shaped = 0;
|
ee->shaped = 0;
|
||||||
ee->alpha = alpha;
|
ee->alpha = alpha;
|
||||||
ecore_x_window_del(ee->engine.x.win);
|
ecore_x_window_del(ee->engine.x.win);
|
||||||
|
@ -1925,6 +1927,7 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha)
|
||||||
# endif /* HAVE_ECORE_X_XCB */
|
# endif /* HAVE_ECORE_X_XCB */
|
||||||
|
|
||||||
if (!einfo) return;
|
if (!einfo) return;
|
||||||
|
if (!ecore_x_composite_query()) return;
|
||||||
|
|
||||||
ee->shaped = 0;
|
ee->shaped = 0;
|
||||||
ee->alpha = alpha;
|
ee->alpha = alpha;
|
||||||
|
|
|
@ -1626,6 +1626,9 @@ EAPI void ecore_x_region_gc_clip_set(Ecore_X_Region region, Ecore_X_GC
|
||||||
EAPI void ecore_x_region_window_shape_set(Ecore_X_Region region, Ecore_X_Window win, Ecore_X_Shape_Type type, int x_offset, int y_offset);
|
EAPI void ecore_x_region_window_shape_set(Ecore_X_Region region, Ecore_X_Window win, Ecore_X_Shape_Type type, int x_offset, int y_offset);
|
||||||
EAPI void ecore_x_region_picture_clip_set(Ecore_X_Region region, Ecore_X_Picture picture, int x_origin, int y_origin);
|
EAPI void ecore_x_region_picture_clip_set(Ecore_X_Region region, Ecore_X_Picture picture, int x_origin, int y_origin);
|
||||||
|
|
||||||
|
/* XComposite Extension Support */
|
||||||
|
EAPI int ecore_x_composite_query(void);
|
||||||
|
|
||||||
/* XDamage Extension Support */
|
/* XDamage Extension Support */
|
||||||
typedef Ecore_X_ID Ecore_X_Damage;
|
typedef Ecore_X_ID Ecore_X_Damage;
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@ MAINTAINERCLEANFILES = Makefile.in
|
||||||
if BUILD_ECORE_X_XCB
|
if BUILD_ECORE_X_XCB
|
||||||
INCLUDES = \
|
INCLUDES = \
|
||||||
@XCB_DAMAGE_CFLAGS@ \
|
@XCB_DAMAGE_CFLAGS@ \
|
||||||
|
@XCB_COMPOSITE_CFLAGS@ \
|
||||||
@XCB_DPMS_CFLAGS@ \
|
@XCB_DPMS_CFLAGS@ \
|
||||||
@XCB_RANDR_CFLAGS@ \
|
@XCB_RANDR_CFLAGS@ \
|
||||||
@XCB_RENDER_CFLAGS@ \
|
@XCB_RENDER_CFLAGS@ \
|
||||||
|
@ -21,6 +22,7 @@ else
|
||||||
INCLUDES = \
|
INCLUDES = \
|
||||||
@Xcursor_cflags@ \
|
@Xcursor_cflags@ \
|
||||||
@XDAMAGE_CFLAGS@ \
|
@XDAMAGE_CFLAGS@ \
|
||||||
|
@XCOMPOSITE_CFLAGS@ \
|
||||||
@XDPMS_CFLAGS@ \
|
@XDPMS_CFLAGS@ \
|
||||||
@XFIXES_CFLAGS@ \
|
@XFIXES_CFLAGS@ \
|
||||||
@XINERAMA_CFLAGS@ \
|
@XINERAMA_CFLAGS@ \
|
||||||
|
@ -51,6 +53,7 @@ libecore_x_la_SOURCES = \
|
||||||
ecore_xcb_atom.c \
|
ecore_xcb_atom.c \
|
||||||
ecore_xcb_cursor.c \
|
ecore_xcb_cursor.c \
|
||||||
ecore_xcb_damage.c \
|
ecore_xcb_damage.c \
|
||||||
|
ecore_xcb_composite.c \
|
||||||
ecore_xcb_dnd.c \
|
ecore_xcb_dnd.c \
|
||||||
ecore_xcb_dpms.c \
|
ecore_xcb_dpms.c \
|
||||||
ecore_xcb_drawable.c \
|
ecore_xcb_drawable.c \
|
||||||
|
@ -76,6 +79,7 @@ ecore_xcb_private.h
|
||||||
|
|
||||||
libecore_x_la_LIBADD = \
|
libecore_x_la_LIBADD = \
|
||||||
@XCB_DAMAGE_LIBS@ \
|
@XCB_DAMAGE_LIBS@ \
|
||||||
|
@XCB_COMPOSITE_LIBS@ \
|
||||||
@XCB_DPMS_LIBS@ \
|
@XCB_DPMS_LIBS@ \
|
||||||
@XCB_RANDR_LIBS@ \
|
@XCB_RANDR_LIBS@ \
|
||||||
@XCB_RENDER_LIBS@ \
|
@XCB_RENDER_LIBS@ \
|
||||||
|
@ -110,6 +114,7 @@ ecore_x_sync.c \
|
||||||
ecore_x_randr.c \
|
ecore_x_randr.c \
|
||||||
ecore_x_fixes.c \
|
ecore_x_fixes.c \
|
||||||
ecore_x_damage.c \
|
ecore_x_damage.c \
|
||||||
|
ecore_x_composite.c \
|
||||||
ecore_x_error.c \
|
ecore_x_error.c \
|
||||||
ecore_x_events.c \
|
ecore_x_events.c \
|
||||||
ecore_x_icccm.c \
|
ecore_x_icccm.c \
|
||||||
|
@ -132,6 +137,7 @@ ecore_x_private.h
|
||||||
libecore_x_la_LIBADD = \
|
libecore_x_la_LIBADD = \
|
||||||
@Xcursor_libs@ \
|
@Xcursor_libs@ \
|
||||||
@XDAMAGE_LIBS@ \
|
@XDAMAGE_LIBS@ \
|
||||||
|
@XCOMPOSITE_LIBS@ \
|
||||||
@XDPMS_LIBS@ \
|
@XDPMS_LIBS@ \
|
||||||
@XFIXES_LIBS@ \
|
@XFIXES_LIBS@ \
|
||||||
@XINERAMA_LIBS@ \
|
@XINERAMA_LIBS@ \
|
||||||
|
@ -159,6 +165,7 @@ ecore_x_sync.c \
|
||||||
ecore_x_randr.c \
|
ecore_x_randr.c \
|
||||||
ecore_x_fixes.c \
|
ecore_x_fixes.c \
|
||||||
ecore_x_damage.c \
|
ecore_x_damage.c \
|
||||||
|
ecore_x_composite.c \
|
||||||
ecore_x_error.c \
|
ecore_x_error.c \
|
||||||
ecore_x_events.c \
|
ecore_x_events.c \
|
||||||
ecore_x_icccm.c \
|
ecore_x_icccm.c \
|
||||||
|
|
|
@ -438,6 +438,7 @@ ecore_x_init(const char *name)
|
||||||
_ecore_x_dnd_init();
|
_ecore_x_dnd_init();
|
||||||
_ecore_x_fixes_init();
|
_ecore_x_fixes_init();
|
||||||
_ecore_x_damage_init();
|
_ecore_x_damage_init();
|
||||||
|
_ecore_x_composite_init();
|
||||||
_ecore_x_dpms_init();
|
_ecore_x_dpms_init();
|
||||||
|
|
||||||
_ecore_x_init_count++;
|
_ecore_x_init_count++;
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecore_x_private.h"
|
||||||
|
#include "Ecore_X.h"
|
||||||
|
|
||||||
|
static int _composite_available;
|
||||||
|
|
||||||
|
void
|
||||||
|
_ecore_x_composite_init(void)
|
||||||
|
{
|
||||||
|
_composite_available = 0;
|
||||||
|
|
||||||
|
#ifdef ECORE_XCOMPOSITE
|
||||||
|
int major, minor;
|
||||||
|
|
||||||
|
if (XCompositeQueryVersion(_ecore_x_disp, &major, &minor))
|
||||||
|
_composite_available = 1;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI int
|
||||||
|
ecore_x_composite_query(void)
|
||||||
|
{
|
||||||
|
return _composite_available;
|
||||||
|
}
|
|
@ -40,6 +40,9 @@
|
||||||
#ifdef ECORE_XFIXES
|
#ifdef ECORE_XFIXES
|
||||||
#include <X11/extensions/Xfixes.h>
|
#include <X11/extensions/Xfixes.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef ECORE_XCOMPOSITE
|
||||||
|
#include <X11/extensions/Xcomposite.h>
|
||||||
|
#endif
|
||||||
#ifdef ECORE_XDAMAGE
|
#ifdef ECORE_XDAMAGE
|
||||||
#include <X11/extensions/Xdamage.h>
|
#include <X11/extensions/Xdamage.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -222,9 +225,10 @@ Ecore_X_Window_State _ecore_x_netwm_state_get(Ecore_X_Atom a);
|
||||||
int _ecore_x_netwm_startup_info_begin(Ecore_X_Window win, char *data);
|
int _ecore_x_netwm_startup_info_begin(Ecore_X_Window win, char *data);
|
||||||
int _ecore_x_netwm_startup_info(Ecore_X_Window win, char *data);
|
int _ecore_x_netwm_startup_info(Ecore_X_Window win, char *data);
|
||||||
|
|
||||||
/* Fixes * Damage * DPMS */
|
/* Fixes * Damage * Composite * DPMS */
|
||||||
void _ecore_x_fixes_init(void);
|
void _ecore_x_fixes_init(void);
|
||||||
void _ecore_x_damage_init(void);
|
void _ecore_x_damage_init(void);
|
||||||
|
void _ecore_x_composite_init(void);
|
||||||
void _ecore_x_dpms_init(void);
|
void _ecore_x_dpms_init(void);
|
||||||
|
|
||||||
/* from sync */
|
/* from sync */
|
||||||
|
|
|
@ -155,6 +155,9 @@ ecore_x_init(const char *name)
|
||||||
#ifdef ECORE_XCB_DAMAGE
|
#ifdef ECORE_XCB_DAMAGE
|
||||||
const xcb_query_extension_reply_t *reply_damage;
|
const xcb_query_extension_reply_t *reply_damage;
|
||||||
#endif /* ECORE_XCB_DAMAGE */
|
#endif /* ECORE_XCB_DAMAGE */
|
||||||
|
#ifdef ECORE_XCB_COMPOSITE
|
||||||
|
const xcb_query_extension_reply_t *reply_composite;
|
||||||
|
#endif /* ECORE_XCB_COMPOSITE */
|
||||||
#ifdef ECORE_XCB_DPMS
|
#ifdef ECORE_XCB_DPMS
|
||||||
const xcb_query_extension_reply_t *reply_dpms;
|
const xcb_query_extension_reply_t *reply_dpms;
|
||||||
#endif /* ECORE_XCB_DPMS */
|
#endif /* ECORE_XCB_DPMS */
|
||||||
|
@ -219,6 +222,10 @@ ecore_x_init(const char *name)
|
||||||
xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_damage_id);
|
xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_damage_id);
|
||||||
#endif /* ECORE_XCB_DAMAGE */
|
#endif /* ECORE_XCB_DAMAGE */
|
||||||
|
|
||||||
|
#ifdef ECORE_XCB_COMPOSITE
|
||||||
|
xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_composite_id);
|
||||||
|
#endif /* ECORE_XCB_COMPOSITE */
|
||||||
|
|
||||||
#ifdef ECORE_XCB_DPMS
|
#ifdef ECORE_XCB_DPMS
|
||||||
xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_dpms_id);
|
xcb_prefetch_extension_data(_ecore_xcb_conn, &xcb_dpms_id);
|
||||||
#endif /* ECORE_XCB_DPMS */
|
#endif /* ECORE_XCB_DPMS */
|
||||||
|
@ -293,9 +300,13 @@ ecore_x_init(const char *name)
|
||||||
_ecore_xcb_event_handlers_num = _ecore_xcb_event_damage_id + 1;
|
_ecore_xcb_event_handlers_num = _ecore_xcb_event_damage_id + 1;
|
||||||
#endif /* ECORE_XCB_DAMAGE */
|
#endif /* ECORE_XCB_DAMAGE */
|
||||||
|
|
||||||
|
#ifdef ECORE_XCB_COMPOSITE
|
||||||
|
reply_composite = xcb_get_extension_data(_ecore_xcb_conn, &xcb_composite_id);
|
||||||
|
#endif /* ECORE_XCB_COMPOSITE */
|
||||||
|
|
||||||
#ifdef ECORE_XCB_DPMS
|
#ifdef ECORE_XCB_DPMS
|
||||||
reply_dpms = xcb_get_extension_data(_ecore_xcb_conn, &xcb_dpms_id);
|
reply_dpms = xcb_get_extension_data(_ecore_xcb_conn, &xcb_dpms_id);
|
||||||
#endif /* ECORE_XCB_DAMAGE */
|
#endif /* ECORE_XCB_DPMS */
|
||||||
|
|
||||||
#ifdef ECORE_XCB_RANDR
|
#ifdef ECORE_XCB_RANDR
|
||||||
reply_randr = xcb_get_extension_data(_ecore_xcb_conn, &xcb_randr_id);
|
reply_randr = xcb_get_extension_data(_ecore_xcb_conn, &xcb_randr_id);
|
||||||
|
@ -359,6 +370,7 @@ ecore_x_init(const char *name)
|
||||||
|
|
||||||
/* We ask for the QueryVersion request of the extensions */
|
/* We ask for the QueryVersion request of the extensions */
|
||||||
_ecore_x_damage_init(reply_damage);
|
_ecore_x_damage_init(reply_damage);
|
||||||
|
_ecore_x_composite_init(reply_composite);
|
||||||
_ecore_x_dpms_init(reply_dpms);
|
_ecore_x_dpms_init(reply_dpms);
|
||||||
_ecore_x_randr_init(reply_randr);
|
_ecore_x_randr_init(reply_randr);
|
||||||
_ecore_x_shape_init(reply_shape);
|
_ecore_x_shape_init(reply_shape);
|
||||||
|
@ -374,6 +386,7 @@ ecore_x_init(const char *name)
|
||||||
{
|
{
|
||||||
/* We get the replies of the QueryVersion request because we leave */
|
/* We get the replies of the QueryVersion request because we leave */
|
||||||
_ecore_x_damage_init_finalize();
|
_ecore_x_damage_init_finalize();
|
||||||
|
_ecore_x_composite_init_finalize();
|
||||||
_ecore_x_dpms_init_finalize();
|
_ecore_x_dpms_init_finalize();
|
||||||
_ecore_x_randr_init_finalize();
|
_ecore_x_randr_init_finalize();
|
||||||
_ecore_x_shape_init_finalize();
|
_ecore_x_shape_init_finalize();
|
||||||
|
@ -553,6 +566,7 @@ ecore_x_init(const char *name)
|
||||||
{
|
{
|
||||||
/* We get the replies of the QueryVersion request because we leave */
|
/* We get the replies of the QueryVersion request because we leave */
|
||||||
_ecore_x_damage_init_finalize();
|
_ecore_x_damage_init_finalize();
|
||||||
|
_ecore_x_composite_init_finalize();
|
||||||
_ecore_x_dpms_init_finalize();
|
_ecore_x_dpms_init_finalize();
|
||||||
_ecore_x_randr_init_finalize();
|
_ecore_x_randr_init_finalize();
|
||||||
_ecore_x_shape_init_finalize();
|
_ecore_x_shape_init_finalize();
|
||||||
|
@ -582,6 +596,7 @@ ecore_x_init(const char *name)
|
||||||
|
|
||||||
/* We finally get the replies of the QueryVersion request */
|
/* We finally get the replies of the QueryVersion request */
|
||||||
_ecore_x_damage_init_finalize();
|
_ecore_x_damage_init_finalize();
|
||||||
|
_ecore_x_composite_init_finalize();
|
||||||
_ecore_x_dpms_init_finalize();
|
_ecore_x_dpms_init_finalize();
|
||||||
_ecore_x_randr_init_finalize();
|
_ecore_x_randr_init_finalize();
|
||||||
_ecore_x_shape_init_finalize();
|
_ecore_x_shape_init_finalize();
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
/*
|
||||||
|
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "ecore_xcb_private.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup Ecore_X_Composite_Group X Composite Extension Functions
|
||||||
|
*
|
||||||
|
* Functions related to the X Composite extension.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef ECORE_XCB_COMPOSITE
|
||||||
|
static uint8_t _composite_available = 0;
|
||||||
|
static xcb_composite_query_version_cookie_t _ecore_xcb_composite_init_cookie;
|
||||||
|
#endif /* ECORE_XCB_COMPOSITE */
|
||||||
|
|
||||||
|
|
||||||
|
/* To avoid round trips, the initialization is separated in 2
|
||||||
|
functions: _ecore_xcb_composite_init and
|
||||||
|
_ecore_xcb_composite_init_finalize. The first one gets the cookies and
|
||||||
|
the second one gets the replies. */
|
||||||
|
|
||||||
|
void
|
||||||
|
_ecore_x_composite_init(const xcb_query_extension_reply_t *reply)
|
||||||
|
{
|
||||||
|
#ifdef ECORE_XCB_COMPOSITE
|
||||||
|
if (reply && reply->present)
|
||||||
|
_ecore_xcb_composite_init_cookie = xcb_composite_query_version_unchecked(_ecore_xcb_conn, XCB_COMPOSITE_MAJOR_VERSION, XCB_COMPOSITE_MINOR_VERSION);
|
||||||
|
#endif /* ECORE_XCB_COMPOSITE */
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_ecore_x_composite_init_finalize(void)
|
||||||
|
{
|
||||||
|
#ifdef ECORE_XCB_COMPOSITE
|
||||||
|
xcb_composite_query_version_reply_t *reply;
|
||||||
|
|
||||||
|
reply = xcb_composite_query_version_reply(_ecore_xcb_conn,
|
||||||
|
_ecore_xcb_composite_init_cookie,
|
||||||
|
NULL);
|
||||||
|
if (reply)
|
||||||
|
{
|
||||||
|
if (reply->major_version = XCB_COMPOSITE_MAJOR_VERSION &&
|
||||||
|
reply->minor_version >= XCB_COMPOSITE_MINOR_VERSION)
|
||||||
|
_composite_available = 1;
|
||||||
|
free(reply);
|
||||||
|
}
|
||||||
|
#endif /* ECORE_XCB_COMPOSITE */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return whether the Composite Extension is available.
|
||||||
|
* @return 1 if the Composite Extension is available, 0 if not.
|
||||||
|
*
|
||||||
|
* Return 1 if the X server supports the Composite Extension version 0.4
|
||||||
|
* or greater, 0 otherwise.
|
||||||
|
* @ingroup Ecore_X_Composite_Group
|
||||||
|
*/
|
||||||
|
EAPI int
|
||||||
|
ecore_x_composite_query(void)
|
||||||
|
{
|
||||||
|
#ifdef ECORE_XCB_COMPOSITE
|
||||||
|
return _composite_available;
|
||||||
|
#else
|
||||||
|
return 0;
|
||||||
|
#endif /* ECORE_XCB_COMPOSITE */
|
||||||
|
}
|
|
@ -23,6 +23,9 @@
|
||||||
#ifdef ECORE_XCB_DAMAGE
|
#ifdef ECORE_XCB_DAMAGE
|
||||||
# include <xcb/damage.h>
|
# include <xcb/damage.h>
|
||||||
#endif /* ECORE_XCB_DAMAGE */
|
#endif /* ECORE_XCB_DAMAGE */
|
||||||
|
#ifdef ECORE_XCB_COMPOSITE
|
||||||
|
# include <xcb/composite.h>
|
||||||
|
#endif /* ECORE_XCB_COMPOSITE */
|
||||||
#ifdef ECORE_XCB_DPMS
|
#ifdef ECORE_XCB_DPMS
|
||||||
# include <xcb/dpms.h>
|
# include <xcb/dpms.h>
|
||||||
#endif /* ECORE_XCB_DPMS */
|
#endif /* ECORE_XCB_DPMS */
|
||||||
|
@ -237,6 +240,9 @@ void _ecore_x_atom_init_finalize (xcb_intern_atom_cookie_t *);
|
||||||
void _ecore_x_damage_init (const xcb_query_extension_reply_t *reply);
|
void _ecore_x_damage_init (const xcb_query_extension_reply_t *reply);
|
||||||
void _ecore_x_damage_init_finalize (void);
|
void _ecore_x_damage_init_finalize (void);
|
||||||
|
|
||||||
|
/* composite */
|
||||||
|
void _ecore_x_composite_init (const xcb_query_extension_reply_t *reply);
|
||||||
|
void _ecore_x_composite_init_finalize (void);
|
||||||
|
|
||||||
/* from dnd */
|
/* from dnd */
|
||||||
void _ecore_x_dnd_init (void);
|
void _ecore_x_dnd_init (void);
|
||||||
|
|
Loading…
Reference in New Issue