107 lines
2.1 KiB
C
107 lines
2.1 KiB
C
|
|
||
|
/*
|
||
|
* 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");
|
||
|
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", dpyName ? dpyName : ":0");
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
scrn = DefaultScreen(dpy);
|
||
|
PrintConfigs(dpy, scrn, horizFormat);
|
||
|
XCloseDisplay(dpy);
|
||
|
return 0;
|
||
|
}
|