blob: edfa9c1f3b0392300909b65c46ae0b98fa70eaae [file] [log] [blame]
Brian Paul21666e32002-10-05 18:30:13 +00001
2/*
3 * Print list of fbconfigs and test each to see if a pbuffer can be created
4 * for that config.
5 *
6 * Brian Paul
7 * April 1997
8 * Updated on 5 October 2002.
9 */
10
11
12#include <X11/Xlib.h>
13#include <stdio.h>
14#include <string.h>
15#include "pbutil.h"
16
17
18
19
20static void
21PrintConfigs(Display *dpy, int screen, Bool horizFormat)
22{
Brian Paulf72e4422005-01-04 00:58:29 +000023 FBCONFIG *fbConfigs;
Brian Paul21666e32002-10-05 18:30:13 +000024 int nConfigs;
25 int i;
Brian Paul21666e32002-10-05 18:30:13 +000026
Brian Paul71fc6a32005-01-06 23:59:37 +000027 fbConfigs = GetAllFBConfigs(dpy, screen, &nConfigs);
Brian Paulf72e4422005-01-04 00:58:29 +000028 if (!nConfigs || !fbConfigs) {
Brian Paul71fc6a32005-01-06 23:59:37 +000029 printf("Error: glxGetFBConfigs failed\n");
Vinson Leee19195c2009-11-20 15:52:53 -080030 XFree(fbConfigs);
Brian Paul21666e32002-10-05 18:30:13 +000031 return;
32 }
33
34 printf("Number of fbconfigs: %d\n", nConfigs);
35
36 if (horizFormat) {
Brian Paulff53a4e2005-01-10 23:15:59 +000037 printf(" ID VisualType Depth Lvl RGB CI DB Stereo R G B A");
Brian Paulf72e4422005-01-04 00:58:29 +000038 printf(" Z S AR AG AB AA MSbufs MSnum Pbuffer Float\n");
Brian Paul21666e32002-10-05 18:30:13 +000039 }
40
41 /* Print config info */
Brian Paul71fc6a32005-01-06 23:59:37 +000042 for (i = 0; i < nConfigs; i++) {
Brian Paulf72e4422005-01-04 00:58:29 +000043 PrintFBConfigInfo(dpy, screen, fbConfigs[i], horizFormat);
Brian Paul21666e32002-10-05 18:30:13 +000044 }
45
46 /* free the list */
47 XFree(fbConfigs);
48}
49
50
51
52static void
53PrintUsage(void)
54{
55 printf("Options:\n");
56 printf(" -display <display-name> specify X display name\n");
57 printf(" -t print in tabular format\n");
58 printf(" -v print in verbose format\n");
59 printf(" -help print this information\n");
60}
61
62
63int
64main(int argc, char *argv[])
65{
66 Display *dpy;
67 int scrn;
68 char *dpyName = NULL;
69 Bool horizFormat = True;
70 int i;
71
72 for (i=1; i<argc; i++) {
73 if (strcmp(argv[i],"-display")==0) {
74 if (i+1<argc) {
75 dpyName = argv[i+1];
76 i++;
77 }
78 }
79 else if (strcmp(argv[i],"-t")==0) {
80 /* tabular format */
81 horizFormat = True;
82 }
83 else if (strcmp(argv[i],"-v")==0) {
84 /* verbose format */
85 horizFormat = False;
86 }
87 else if (strcmp(argv[i],"-help")==0) {
88 PrintUsage();
89 return 0;
90 }
91 else {
92 printf("Unknown option: %s\n", argv[i]);
93 }
94 }
95
96 dpy = XOpenDisplay(dpyName);
97
98 if (!dpy) {
Brian73eee242006-12-13 08:30:26 -070099 printf("Error: couldn't open display %s\n", XDisplayName(dpyName));
Brian Paul21666e32002-10-05 18:30:13 +0000100 return 1;
101 }
102
103 scrn = DefaultScreen(dpy);
104 PrintConfigs(dpy, scrn, horizFormat);
105 XCloseDisplay(dpy);
106 return 0;
107}