Add test program for XFree86-DRI extension to xcb-demo. Mark XFree86-DRI extension...
[free-sw/xcb/demo] / xcbxf86dri.c
1 /* Copyright (C) 2006 Josh Triplett. All Rights Reserved.  See the file
2  * COPYING in this directory for licensing information. */
3 #include <X11/XCB/xcb.h>
4 #include <X11/XCB/xf86dri.h>
5 #include <assert.h>
6 #include <stdio.h>
7 #include <stdlib.h>
8
9 int main(int argc, char **argv)
10 {
11     int screen;
12     XCBXF86DriQueryVersionCookie qvc;
13     XCBXF86DriQueryVersionRep *qv;
14     XCBXF86DriQueryDirectRenderingCapableCookie qdrc;
15     XCBXF86DriQueryDirectRenderingCapableRep *qdr;
16     XCBConnection *c = XCBConnect(NULL, &screen);
17
18     if(!c)
19     {
20         fprintf(stderr, "Error establishing connection to X server.");
21         return 1;
22     }
23
24     qvc  = XCBXF86DriQueryVersion(c);
25     qdrc = XCBXF86DriQueryDirectRenderingCapable(c, screen);
26
27     qv  = XCBXF86DriQueryVersionReply(c, qvc, 0);
28     if(!qv)
29     {
30         fprintf(stderr, "Error querying DRI extension version.\n");
31         return 1;
32     }
33     printf("DRI extension version: %hu.%hu.%u\n",
34            qv->dri_major_version, qv->dri_minor_version, qv->dri_minor_patch);
35     free(qv);
36
37     qdr = XCBXF86DriQueryDirectRenderingCapableReply(c, qdrc, 0);
38     if(!qdr)
39     {
40         fprintf(stderr, "Error querying direct rendering capability.\n");
41         return 1;
42     }
43     printf("Direct rendering (screen %d): %s\n",
44            screen, qdr->is_capable ? "yes" : "no");
45     free(qdr);
46
47     XCBDisconnect(c);
48
49     return 0;
50 }