| |
| /* |
| * Print list of fbconfigs and test each to see if a pbuffer can be created |
| * for that config. |
| * |
| * Brian Paul |
| * April 1997 |
| * Updated on 5 October 2002. |
| */ |
| |
| |
| #include <X11/Xlib.h> |
| #include <stdio.h> |
| #include <string.h> |
| #include "pbutil.h" |
| |
| |
| |
| |
| static void |
| PrintConfigs(Display *dpy, int screen, Bool horizFormat) |
| { |
| FBCONFIG *fbConfigs; |
| int nConfigs; |
| int i; |
| |
| fbConfigs = GetAllFBConfigs(dpy, screen, &nConfigs); |
| if (!nConfigs || !fbConfigs) { |
| printf("Error: glxGetFBConfigs failed\n"); |
| XFree(fbConfigs); |
| return; |
| } |
| |
| printf("Number of fbconfigs: %d\n", nConfigs); |
| |
| if (horizFormat) { |
| printf(" ID VisualType Depth Lvl RGB CI DB Stereo R G B A"); |
| printf(" Z S AR AG AB AA MSbufs MSnum Pbuffer Float\n"); |
| } |
| |
| /* Print config info */ |
| for (i = 0; i < nConfigs; i++) { |
| PrintFBConfigInfo(dpy, screen, fbConfigs[i], horizFormat); |
| } |
| |
| /* free the list */ |
| XFree(fbConfigs); |
| } |
| |
| |
| |
| static void |
| PrintUsage(void) |
| { |
| printf("Options:\n"); |
| printf(" -display <display-name> specify X display name\n"); |
| printf(" -t print in tabular format\n"); |
| printf(" -v print in verbose format\n"); |
| printf(" -help print this information\n"); |
| } |
| |
| |
| int |
| main(int argc, char *argv[]) |
| { |
| Display *dpy; |
| int scrn; |
| char *dpyName = NULL; |
| Bool horizFormat = True; |
| int i; |
| |
| for (i=1; i<argc; i++) { |
| if (strcmp(argv[i],"-display")==0) { |
| if (i+1<argc) { |
| dpyName = argv[i+1]; |
| i++; |
| } |
| } |
| else if (strcmp(argv[i],"-t")==0) { |
| /* tabular format */ |
| horizFormat = True; |
| } |
| else if (strcmp(argv[i],"-v")==0) { |
| /* verbose format */ |
| horizFormat = False; |
| } |
| else if (strcmp(argv[i],"-help")==0) { |
| PrintUsage(); |
| return 0; |
| } |
| else { |
| printf("Unknown option: %s\n", argv[i]); |
| } |
| } |
| |
| dpy = XOpenDisplay(dpyName); |
| |
| if (!dpy) { |
| printf("Error: couldn't open display %s\n", XDisplayName(dpyName)); |
| return 1; |
| } |
| |
| scrn = DefaultScreen(dpy); |
| PrintConfigs(dpy, scrn, horizFormat); |
| XCloseDisplay(dpy); |
| return 0; |
| } |