INCLUDES = $(XCB_CFLAGS)
LDADD = $(XCB_LIBS)
-bin_PROGRAMS = hypnomoire xdpyinfo xcb-test dpms rendertest xcbrandr
+bin_PROGRAMS = hypnomoire xdpyinfo xcb-test dpms rendertest xcbrandr xcbxf86dri
hypnomoire_CFLAGS = $(XCBAUX_CFLAGS)
hypnomoire_LDADD = $(XCBAUX_LIBS) -lm -lpthread
xcbrandr_CFLAGS = $(XCBAUX_CFLAGS) $(XCBRANDR_CFLAGS)
xcbrandr_LDADD = $(XCBAUX_LIBS) $(XCBRANDR_LIBS)
xcbrandr_SOURCES = xcbrandr.c
+
+xcbxf86dri_CFLAGS = $(XCBXF86DRI_CFLAGS)
+xcbxf86dri_LDADD = $(XCBXF86DRI_LIBS)
+xcbxf86dri_SOURCES = xcbxf86dri.c
PKG_CHECK_MODULES(XCBDPMS, xcb-dpms)
PKG_CHECK_MODULES(XCBRENDER, xcb-render)
PKG_CHECK_MODULES(XCBRANDR, xcb-randr)
+PKG_CHECK_MODULES(XCBXF86DRI, xcb-xf86dri)
AC_OUTPUT([Makefile tests/Makefile])
--- /dev/null
+/* Copyright (C) 2006 Josh Triplett. All Rights Reserved. See the file
+ * COPYING in this directory for licensing information. */
+#include <X11/XCB/xcb.h>
+#include <X11/XCB/xf86dri.h>
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int main(int argc, char **argv)
+{
+ int screen;
+ XCBXF86DriQueryVersionCookie qvc;
+ XCBXF86DriQueryVersionRep *qv;
+ XCBXF86DriQueryDirectRenderingCapableCookie qdrc;
+ XCBXF86DriQueryDirectRenderingCapableRep *qdr;
+ XCBConnection *c = XCBConnect(NULL, &screen);
+
+ if(!c)
+ {
+ fprintf(stderr, "Error establishing connection to X server.");
+ return 1;
+ }
+
+ qvc = XCBXF86DriQueryVersion(c);
+ qdrc = XCBXF86DriQueryDirectRenderingCapable(c, screen);
+
+ qv = XCBXF86DriQueryVersionReply(c, qvc, 0);
+ if(!qv)
+ {
+ fprintf(stderr, "Error querying DRI extension version.\n");
+ return 1;
+ }
+ printf("DRI extension version: %hu.%hu.%u\n",
+ qv->dri_major_version, qv->dri_minor_version, qv->dri_minor_patch);
+ free(qv);
+
+ qdr = XCBXF86DriQueryDirectRenderingCapableReply(c, qdrc, 0);
+ if(!qdr)
+ {
+ fprintf(stderr, "Error querying direct rendering capability.\n");
+ return 1;
+ }
+ printf("Direct rendering (screen %d): %s\n",
+ screen, qdr->is_capable ? "yes" : "no");
+ free(qdr);
+
+ XCBDisconnect(c);
+
+ return 0;
+}