From 21666e3db410d3ab9c7e4b18a3c29ae78a04fa95 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sat, 5 Oct 2002 18:30:13 +0000 Subject: pbuffer info and demo programs --- progs/xdemos/pbinfo.c | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 progs/xdemos/pbinfo.c (limited to 'progs/xdemos/pbinfo.c') diff --git a/progs/xdemos/pbinfo.c b/progs/xdemos/pbinfo.c new file mode 100644 index 0000000000..e4e52810f7 --- /dev/null +++ b/progs/xdemos/pbinfo.c @@ -0,0 +1,133 @@ +/* $Id: pbinfo.c,v 1.1 2002/10/05 18:30:13 brianp Exp $ */ + +/* + * 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 +#include +#include +#include "pbutil.h" + + + + +static void +PrintConfigs(Display *dpy, int screen, Bool horizFormat) +{ + GLXFBConfigSGIX *fbConfigs; + int nConfigs; + int i; + /* Note: you may want to tweek the attribute list to select a different + * set of fbconfigs. + */ + int fbAttribs[] = { + GLX_RENDER_TYPE_SGIX, 0, + GLX_DRAWABLE_TYPE_SGIX, 0, +#if 0 + GLX_RENDER_TYPE_SGIX, GLX_RGBA_BIT_SGIX, + GLX_DRAWABLE_TYPE_SGIX, GLX_PIXMAP_BIT_SGIX, + GLX_RED_SIZE, 1, + GLX_GREEN_SIZE, 1, + GLX_BLUE_SIZE, 1, + GLX_DEPTH_SIZE, 1, + GLX_DOUBLEBUFFER, 0, + GLX_STENCIL_SIZE, 0, +#endif + None}; + + + /* Get list of possible frame buffer configurations */ +#if 0 + /* SGIX method */ + fbConfigs = glXChooseFBConfigSGIX(dpy, screen, fbAttribs, &nConfigs); +#else + /* GLX 1.3 method */ + fbConfigs = glXGetFBConfigs(dpy, screen, &nConfigs); +#endif + + if (nConfigs==0 || !fbConfigs) { + printf("Error: glxChooseFBConfigSGIX 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\n"); + } + + /* Print config info */ + for (i=0;i 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