glXGetConfig()glXGetConfig()NAMEglXGetConfig - return information about GLX visuals
SYNOPSIS
int glXGetConfig(
Display *dpy,
XVisualInfo *vis,
int attrib,
int *value );
PARAMETERS
Specifies the connection to the X server. Specifies the visual to be
queried. It is a pointer to an XVisualInfo structure, not a visual ID
or a pointer to a Visual. Specifies the visual attribute to be
returned. Returns the requested value.
DESCRIPTIONglXGetConfig() sets value to the attrib value of windows or GLX pixmaps
created with respect to vis. glXGetConfig() returns an error code if
it fails for any reason. Otherwise, zero is returned.
attrib is one of the following:
True if OpenGL rendering is supported by this visual, False otherwise.
Number of bits per color buffer. For RGBA visuals, GLX_BUFFER_SIZE is
the sum of GLX_RED_SIZE, GLX_GREEN_SIZE, GLX_BLUE_SIZE, and
GLX_ALPHA_SIZE. For color index visuals, GLX_BUFFER_SIZE is the size of
the color indexes. Frame buffer level of the visual. Level zero is the
default frame buffer. Positive levels correspond to frame buffers that
overlay the default buffer, and negative levels correspond to frame
buffers that underlay the default buffer. True if color buffers store
red, green, blue, and alpha values. False if they store color indexes.
True if color buffers exist in front/back pairs that can be swapped,
False otherwise. True if color buffers exist in left/right pairs,
False otherwise. Number of auxiliary color buffers that are available.
Zero indicates that no auxiliary color buffers exist. Number of bits
of red stored in each color buffer. Undefined if GLX_RGBA is False.
Number of bits of green stored in each color buffer. Undefined if
GLX_RGBA is False. Number of bits of blue stored in each color buffer.
Undefined if GLX_RGBA is False. Number of bits of alpha stored in each
color buffer. Undefined if GLX_RGBA is False. Number of bits in the
depth buffer. Number of bits in the stencil buffer. Number of bits of
red stored in the accumulation buffer. Number of bits of green stored
in the accumulation buffer. Number of bits of blue stored in the accu‐
mulation buffer. Number of bits of alpha stored in the accumulation
buffer.
The X protocol allows a single visual ID to be instantiated with dif‐
ferent numbers of bits per pixel. Windows or GLX pixmaps that will be
rendered with OpenGL, however, must be instantiated with a color buffer
depth of GLX_BUFFER_SIZE.
Although a GLX implementation can export many visuals that support GL
rendering, it must support at least one RGBA visual. This visual must
have at least one color buffer, a stencil buffer of at least 1 bit, a
depth buffer of at least 12 bits, and an accumulation buffer. Alpha
bitplanes are optional in this visual. However, its color buffer size
must be as great as that of the deepest TrueColor, DirectColor, Pseudo‐
Color, or StaticColor visual supported on level zero, and it must
itself be made available on level zero.
In addition, if the X server exports a PseudoColor or StaticColor vis‐
ual on framebuffer level 0, a color index visual is also required on
that level. It must have at least one color buffer, a stencil buffer of
at least 1 bit, and a depth buffer of at least 12 bits. This visual
must have as many color bitplanes as the deepest PseudoColor or Static‐
Color visual supported on level 0.
Applications are best written to select the visual that most closely
meets their requirements. Creating windows or GLX pixmaps with unneces‐
sary buffers can result in reduced rendering performance as well as
poor resource allocation.
NOTES
XVisualInfo is defined in Xutil.h. It is a structure that includes
visual, visualID, screen, and depth elements.
ERRORS
GLX_NO_EXTENSION is returned if dpy does not support the GLX extension.
GLX_BAD_SCREEN is returned if the screen of vis does not correspond to
a screen.
GLX_BAD_ATTRIBUTE is returned if attrib is not a valid GLX attribute.
GLX_BAD_VISUAL is returned if vis doesn't support GLX and an attribute
other than GLX_USE_GL is requested.
SEE ALSOglXChooseVisual(3), glXCreateContext(3)glXGetConfig()