|
|
|
#ifdef HAVE_X11_ICE
|
|
|
|
# include <X11/ICE/ICElib.h>
|
|
|
|
|
|
|
|
static Status test_ICE(void)
|
|
|
|
{
|
|
|
|
return IceInitThreads();
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_SM
|
|
|
|
# include <X11/SM/SMlib.h>
|
|
|
|
# include <stdlib.h>
|
|
|
|
|
|
|
|
static void test_SM(void)
|
|
|
|
{
|
|
|
|
SmcProtocolVersion(NULL);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_X11
|
|
|
|
# include <X11/Xlib.h>
|
|
|
|
|
|
|
|
static Status test_X11(void)
|
|
|
|
{
|
|
|
|
return XInitThreads();
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xau
|
|
|
|
# include <X11/Xauth.h>
|
|
|
|
|
|
|
|
static char* test_Xau(void)
|
|
|
|
{
|
|
|
|
return XauFileName();
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xcomposite
|
|
|
|
# include <X11/extensions/Xcomposite.h>
|
|
|
|
|
|
|
|
static int test_Xcomposite(void)
|
|
|
|
{
|
|
|
|
return XCompositeVersion();
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xdamage
|
|
|
|
# include <X11/extensions/Xdamage.h>
|
|
|
|
|
|
|
|
static Bool test_Xdamage(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
int ev_base;
|
|
|
|
int err_base;
|
|
|
|
Bool ret = XDamageQueryExtension(dpy, &ev_base, &err_base);
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xdmcp
|
|
|
|
# include <X11/Xdmcp.h>
|
|
|
|
|
|
|
|
static int test_Xdmcp(void)
|
|
|
|
{
|
|
|
|
BYTE data[1024];
|
|
|
|
XdmcpBuffer buf = { data, sizeof(data), 0, 0 };
|
|
|
|
return XdmcpReadRemaining(&buf);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xext
|
|
|
|
# include <X11/Xlib.h>
|
|
|
|
# include <X11/extensions/Xext.h>
|
|
|
|
|
|
|
|
static int test_Xext(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
int ret = XMissingExtension(dpy, "cmake");
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xxf86misc
|
|
|
|
# include <X11/Xlib.h>
|
|
|
|
# include <X11/extensions/xf86misc.h>
|
|
|
|
|
|
|
|
static Bool test_Xxf86misc(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
Bool ret = XF86MiscSetClientVersion(dpy);
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xxf86vm
|
|
|
|
# include <X11/Xlib.h>
|
|
|
|
# include <X11/extensions/xf86vmode.h>
|
|
|
|
|
|
|
|
static Bool test_Xxf86vm(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
Bool ret = XF86VidModeSetClientVersion(dpy);
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xfixes
|
|
|
|
# include <X11/extensions/Xfixes.h>
|
|
|
|
|
|
|
|
static Bool test_Xfixes(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
int ev_base;
|
|
|
|
int err_base;
|
|
|
|
Bool ret = XFixesQueryExtension(dpy, &ev_base, &err_base);
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xft
|
|
|
|
# include <X11/Xft/Xft.h>
|
|
|
|
|
|
|
|
static FcBool test_Xft(void)
|
|
|
|
{
|
|
|
|
return XftInitFtLibrary();
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xi
|
|
|
|
# include <X11/extensions/XInput.h>
|
|
|
|
|
|
|
|
static XExtensionVersion* test_Xi(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
XExtensionVersion* ret = XGetExtensionVersion(dpy, "cmake");
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xinerama
|
|
|
|
# include <X11/extensions/Xinerama.h>
|
|
|
|
|
|
|
|
static Bool test_Xinerama(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
int ev_base;
|
|
|
|
int err_base;
|
|
|
|
Bool ret = XineramaQueryExtension(dpy, &ev_base, &err_base);
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xkb
|
|
|
|
# include <X11/XKBlib.h>
|
|
|
|
|
|
|
|
static Bool test_Xkb(void)
|
|
|
|
{
|
|
|
|
return XkbIgnoreExtension(0);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xkbfile
|
|
|
|
// clang-format off
|
|
|
|
# include <stdio.h>
|
|
|
|
# include <X11/XKBlib.h>
|
|
|
|
# include <X11/extensions/XKBfile.h>
|
|
|
|
# include <stdlib.h>
|
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
static void test_xkbfile(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
XkbInitAtoms(dpy);
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xmu
|
|
|
|
# include <X11/Xmu/Xmu.h>
|
|
|
|
# include <stdlib.h>
|
|
|
|
|
|
|
|
static Bool test_Xmu(void)
|
|
|
|
{
|
|
|
|
return XmuValidArea(NULL);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xpm
|
|
|
|
# include <X11/xpm.h>
|
|
|
|
|
|
|
|
static int test_Xpm(void)
|
|
|
|
{
|
|
|
|
return XpmAttributesSize();
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xtst
|
|
|
|
# include <X11/extensions/XTest.h>
|
|
|
|
|
|
|
|
static Status test_Xtst(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
Status ret = XTestDiscard(dpy);
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xrandr
|
|
|
|
# include <X11/extensions/Xrandr.h>
|
|
|
|
|
|
|
|
static Bool test_Xrandr(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
int ev_base;
|
|
|
|
int err_base;
|
|
|
|
Bool ret = XRRQueryExtension(dpy, &ev_base, &err_base);
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xrender
|
|
|
|
# include <X11/extensions/Xrender.h>
|
|
|
|
|
|
|
|
static Bool test_Xrender(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
int ev_base;
|
|
|
|
int err_base;
|
|
|
|
Bool ret = XRenderQueryExtension(dpy, &ev_base, &err_base);
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_XRes
|
|
|
|
# include <X11/Xlib.h>
|
|
|
|
# include <X11/extensions/XRes.h>
|
|
|
|
|
|
|
|
static Bool test_XRes(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
int ev_base;
|
|
|
|
int err_base;
|
|
|
|
Bool ret = XResQueryExtension(dpy, &ev_base, &err_base);
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xss
|
|
|
|
# include <X11/extensions/scrnsaver.h>
|
|
|
|
|
|
|
|
static Bool test_Xss(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
int ev_base;
|
|
|
|
int err_base;
|
|
|
|
Bool ret = XScreenSaverQueryExtension(dpy, &ev_base, &err_base);
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xt
|
|
|
|
# include <X11/Intrinsic.h>
|
|
|
|
|
|
|
|
static void test_Xt(void)
|
|
|
|
{
|
|
|
|
return XtToolkitInitialize();
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xutil
|
|
|
|
# include <X11/Xutil.h>
|
|
|
|
|
|
|
|
static int test_Xutil(void)
|
|
|
|
{
|
|
|
|
Region r = XCreateRegion();
|
|
|
|
return XDestroyRegion(r);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xv
|
|
|
|
# include <X11/Xlib.h>
|
|
|
|
# include <X11/extensions/Xvlib.h>
|
|
|
|
|
|
|
|
static int test_Xv(void)
|
|
|
|
{
|
|
|
|
Display* dpy = XOpenDisplay(NULL);
|
|
|
|
unsigned int version;
|
|
|
|
unsigned int revision;
|
|
|
|
unsigned int req_base;
|
|
|
|
unsigned int ev_base;
|
|
|
|
unsigned int err_base;
|
|
|
|
int ret =
|
|
|
|
XvQueryExtension(dpy, &version, &revision, &req_base, &ev_base, &err_base);
|
|
|
|
XCloseDisplay(dpy);
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_Xaw
|
|
|
|
# include <X11/Intrinsic.h>
|
|
|
|
# include <X11/Xaw/Box.h>
|
|
|
|
|
|
|
|
static void test_Xaw(void)
|
|
|
|
{
|
|
|
|
XrmOptionDescRec opt_table[] = { { NULL } };
|
|
|
|
|
|
|
|
Widget toplevel;
|
|
|
|
toplevel =
|
|
|
|
XtInitialize("test", "test", opt_table, XtNumber(opt_table), NULL, NULL);
|
|
|
|
Widget box =
|
|
|
|
XtCreateManagedWidget("testbox", boxWidgetClass, toplevel, NULL, 0);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_composite
|
|
|
|
# include <xcb/composite.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_composite(void)
|
|
|
|
{
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, NULL);
|
|
|
|
xcb_composite_query_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_cursor
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xcb_cursor.h>
|
|
|
|
|
|
|
|
static void test_xcb_cursor(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_screen_iterator_t screens =
|
|
|
|
xcb_setup_roots_iterator(xcb_get_setup(connection));
|
|
|
|
xcb_cursor_context_t* ctx;
|
|
|
|
xcb_cursor_context_new(connection, screens.data, &ctx);
|
|
|
|
xcb_cursor_context_free(ctx);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_damage
|
|
|
|
# include <xcb/damage.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_damage(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_damage_query_version_cookie_t cookie =
|
|
|
|
xcb_damage_query_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_dpms
|
|
|
|
# include <xcb/dpms.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_dpms(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_dpms_get_version_cookie_t cookie =
|
|
|
|
xcb_dpms_get_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_dri2
|
|
|
|
# include <xcb/dri2.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_dri2(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_dri2_query_version_cookie_t cookie =
|
|
|
|
xcb_dri2_query_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_dri3
|
|
|
|
# include <xcb/dri3.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_dri3(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_dri3_query_version_cookie_t cookie =
|
|
|
|
xcb_dri3_query_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_errors
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xcb_errors.h>
|
|
|
|
|
|
|
|
static void test_xcb_errors(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_errors_context_t* context;
|
|
|
|
xcb_errors_context_new(connection, &context);
|
|
|
|
xcb_errors_context_free(context);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_ewmh
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xcb_ewmh.h>
|
|
|
|
|
|
|
|
static void test_xcb_ewmh(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_ewmh_connection_t ewmh_connection;
|
|
|
|
xcb_intern_atom_cookie_t* cookie =
|
|
|
|
xcb_ewmh_init_atoms(connection, &ewmh_connection);
|
|
|
|
xcb_ewmh_init_atoms_replies(&ewmh_connection, cookie, NULL);
|
|
|
|
xcb_ewmh_connection_wipe(&ewmh_connection);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_glx
|
|
|
|
# include <xcb/glx.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_glx(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_glx_query_version_cookie_t cookie =
|
|
|
|
xcb_glx_query_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_icccm
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xcb_icccm.h>
|
|
|
|
|
|
|
|
static void test_xcb_icccm(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_window_t root =
|
|
|
|
xcb_setup_roots_iterator(xcb_get_setup(connection)).data->root;
|
|
|
|
xcb_get_property_cookie_t cookie = xcb_icccm_get_wm_name(connection, root);
|
|
|
|
xcb_icccm_get_text_property_reply_t reply;
|
|
|
|
xcb_icccm_get_wm_name_reply(connection, cookie, &reply, NULL);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_image
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xcb_image.h>
|
|
|
|
|
|
|
|
static void test_xcb_image(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
// xcb_image is too convoluted/undocumented to make an
|
|
|
|
// actually working example, apologies :)
|
|
|
|
xcb_image_create(0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_keysyms
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xcb_keysyms.h>
|
|
|
|
|
|
|
|
static void test_xcb_keysyms(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_key_symbols_t* symbols = xcb_key_symbols_alloc(connection);
|
|
|
|
if (symbols != NULL)
|
|
|
|
xcb_key_symbols_free(symbols);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_present
|
|
|
|
# include <xcb/present.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_present(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_present_query_version_cookie_t cookie =
|
|
|
|
xcb_present_query_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_randr
|
|
|
|
# include <xcb/randr.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_randr(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_randr_query_version_cookie_t cookie =
|
|
|
|
xcb_randr_query_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_record
|
|
|
|
# include <xcb/record.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_record(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_record_query_version_cookie_t cookie =
|
|
|
|
xcb_record_query_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_render
|
|
|
|
# include <xcb/render.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_render(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_render_query_version_cookie_t cookie =
|
|
|
|
xcb_render_query_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_render_util
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xcb_renderutil.h>
|
|
|
|
|
|
|
|
static void test_xcb_render_util(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
const xcb_render_query_version_reply_t* cookie =
|
|
|
|
xcb_render_util_query_version(connection);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_res
|
|
|
|
# include <xcb/res.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_res(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_res_query_version_cookie_t cookie =
|
|
|
|
xcb_res_query_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_screensaver
|
|
|
|
# include <xcb/screensaver.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_screensaver(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_screensaver_query_version_cookie_t cookie =
|
|
|
|
xcb_screensaver_query_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_shape
|
|
|
|
# include <xcb/shape.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_shape(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_shape_query_version_cookie_t cookie =
|
|
|
|
xcb_shape_query_version(connection);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_shm
|
|
|
|
# include <xcb/shm.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_shm(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_shm_query_version_cookie_t cookie = xcb_shm_query_version(connection);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_sync
|
|
|
|
# include <xcb/sync.h>
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
|
|
|
|
static void test_xcb_sync(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_sync_initialize_cookie_t cookie = xcb_sync_initialize(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_util
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xcb_aux.h>
|
|
|
|
|
|
|
|
static void test_xcb_util(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_screen_t* screen = xcb_aux_get_screen(connection, screen_nbr);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_xf86dri
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xf86dri.h>
|
|
|
|
|
|
|
|
static void test_xcb_xf86dri(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_xf86dri_query_version_cookie_t cookie =
|
|
|
|
xcb_xf86dri_query_version(connection);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_xfixes
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xfixes.h>
|
|
|
|
|
|
|
|
static void test_xcb_xfixes(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_xfixes_query_version(connection, 1, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_xinerama
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xinerama.h>
|
|
|
|
|
|
|
|
static void test_xcb_xinerama(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_xinerama_query_version_cookie_t cookie =
|
|
|
|
xcb_xinerama_query_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_xinput
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xinput.h>
|
|
|
|
|
|
|
|
static void test_xcb_xinput(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_input_xi_query_version_cookie_t cookie =
|
|
|
|
xcb_input_xi_query_version(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_xkb
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xkb.h>
|
|
|
|
|
|
|
|
static void test_xcb_xkb(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_xkb_use_extension_cookie_t cookie =
|
|
|
|
xcb_xkb_use_extension(connection, 0, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_xrm
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xcb_xrm.h>
|
|
|
|
|
|
|
|
static void test_xcb_xrm(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_xrm_database_t* db = xcb_xrm_database_from_default(connection);
|
|
|
|
xcb_xrm_database_free(db);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_xtest
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xtest.h>
|
|
|
|
|
|
|
|
static void test_xcb_xtest(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_test_get_version_unchecked(connection, 1, 0);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_xvmc
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xvmc.h>
|
|
|
|
|
|
|
|
static void test_xcb_xvmc(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_xvmc_query_version_cookie_t cookie = xcb_xvmc_query_version(connection);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_X11_xcb_xv
|
|
|
|
# include <xcb/xcb.h>
|
|
|
|
# include <xcb/xv.h>
|
|
|
|
|
|
|
|
static void test_xcb_xv(void)
|
|
|
|
{
|
|
|
|
int screen_nbr;
|
|
|
|
xcb_connection_t* connection = xcb_connect(NULL, &screen_nbr);
|
|
|
|
xcb_xv_query_extension_cookie_t cookie = xcb_xv_query_extension(connection);
|
|
|
|
xcb_disconnect(connection);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <stddef.h>
|
|
|
|
|
|
|
|
int main(int argc, char* argv[])
|
|
|
|
{
|
|
|
|
(void)argv;
|
|
|
|
void* fptrs[] = {
|
|
|
|
#ifdef HAVE_X11_ICE
|
|
|
|
test_ICE,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_SM
|
|
|
|
test_SM,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_X11
|
|
|
|
test_X11,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xau
|
|
|
|
test_Xau,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xcomposite
|
|
|
|
test_Xcomposite,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xdamage
|
|
|
|
test_Xdamage,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xdmcp
|
|
|
|
test_Xdmcp,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xext
|
|
|
|
test_Xext,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xxf86misc
|
|
|
|
test_Xxf86misc,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xxf86vm
|
|
|
|
test_Xxf86vm,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xfixes
|
|
|
|
test_Xfixes,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xft
|
|
|
|
test_Xft,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xi
|
|
|
|
test_Xi,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xinerama
|
|
|
|
test_Xinerama,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xkb
|
|
|
|
test_Xkb,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xkbfile
|
|
|
|
test_xkbfile,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xmu
|
|
|
|
test_Xmu,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xpm
|
|
|
|
test_Xpm,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xtst
|
|
|
|
test_Xtst,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xrandr
|
|
|
|
test_Xrandr,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xrender
|
|
|
|
test_Xrender,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_XRes
|
|
|
|
test_XRes,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xss
|
|
|
|
test_Xss,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xt
|
|
|
|
test_Xt,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xutil
|
|
|
|
test_Xutil,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xv
|
|
|
|
test_Xv,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_Xaw
|
|
|
|
test_Xaw,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb
|
|
|
|
test_xcb,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_composite
|
|
|
|
test_xcb_composite,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_cursor
|
|
|
|
test_xcb_cursor,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_damage
|
|
|
|
test_xcb_damage,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_dpms
|
|
|
|
test_xcb_dpms,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_dri2
|
|
|
|
test_xcb_dri2,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_dri3
|
|
|
|
test_xcb_dri3,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_errors
|
|
|
|
test_xcb_errors,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_ewmh
|
|
|
|
test_xcb_ewmh,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_glx
|
|
|
|
test_xcb_glx,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_icccm
|
|
|
|
test_xcb_icccm,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_image
|
|
|
|
test_xcb_image,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_keysyms
|
|
|
|
test_xcb_keysyms,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_present
|
|
|
|
test_xcb_present,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_randr
|
|
|
|
test_xcb_randr,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_record
|
|
|
|
test_xcb_record,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_render
|
|
|
|
test_xcb_render,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_render_util
|
|
|
|
test_xcb_render_util,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_res
|
|
|
|
test_xcb_res,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_screensaver
|
|
|
|
test_xcb_screensaver,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_shape
|
|
|
|
test_xcb_shape,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_shm
|
|
|
|
test_xcb_shm,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_sync
|
|
|
|
test_xcb_sync,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_util
|
|
|
|
test_xcb_util,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_xf86dri
|
|
|
|
test_xcb_xf86dri,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_xfixes
|
|
|
|
test_xcb_xfixes,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_xinerama
|
|
|
|
test_xcb_xinerama,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_xinput
|
|
|
|
test_xcb_xinput,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_xkb
|
|
|
|
test_xcb_xkb,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_xrm
|
|
|
|
test_xcb_xrm,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_xtest
|
|
|
|
test_xcb_xtest,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_xvmc
|
|
|
|
test_xcb_xvmc,
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_X11_xcb_xv
|
|
|
|
test_xcb_xv,
|
|
|
|
#endif
|
|
|
|
NULL,
|
|
|
|
};
|
|
|
|
|
|
|
|
// The code here is to convince the compiler to keep the static functions but
|
|
|
|
// without calling them. This ends up always being "0" because `argc` is
|
|
|
|
// always 1 in the test harness which always returns the sentinel at the end
|
|
|
|
// of the array. The array logic is there to ensure that the contents of
|
|
|
|
// `fptrs` is not optimized out.
|
|
|
|
#pragma GCC diagnostic ignored "-Wpointer-to-int-cast"
|
|
|
|
return (int)fptrs[(sizeof(fptrs) / sizeof(*fptrs)) - argc];
|
|
|
|
}
|