glXChooseVisual()glXChooseVisual()NAMEglXChooseVisual - return a visual that matches specified attributes
SYNOPSIS
XVisualInfo* glXChooseVisual(
Display *dpy,
int screen,
int *attribList );
PARAMETERS
Specifies the connection to the X server. Specifies the screen number.
Specifies a list of boolean attributes and integer attribute/value
pairs. The last attribute must be None.
DESCRIPTIONglXChooseVisual() returns a pointer to an XVisualInfo structure
describing the visual that best meets a minimum specification. The
boolean GLX attributes of the visual that is returned will match the
specified values, and the integer GLX attributes will meet or exceed
the specified minimum values. If all other attributes are equivalent,
then TrueColor and PseudoColor visuals have priority over DirectColor
and StaticColor visuals, respectively. If no conforming visual exists,
NULL is returned. To free the data returned by this function, use
XFree.
All boolean GLX attributes default to False except GLX_USE_GL, which
defaults to True. All integer GLX attributes default to zero. Default
specifications are superseded by attributes included in attribList.
Boolean attributes included in attribList are understood to be True.
Integer attributes and enumerated type attributes are followed immedi‐
ately by the corresponding desired or minimum value. The list must be
terminated with None.
The interpretations of the various GLX visual attributes are as fol‐
lows: Ignored. Only visuals that can be rendered with GLX are consid‐
ered. Must be followed by a nonnegative integer that indicates the
desired color index buffer size. The smallest index buffer of at least
the specified size is preferred. Ignored if GLX_RGBA is asserted. Must
be followed by an integer buffer-level specification. This specifica‐
tion is honored exactly. Buffer level zero corresponds to the main
frame buffer of the display. Buffer level one is the first overlay
frame buffer, level two the second overlay frame buffer, and so on.
Negative buffer levels correspond to underlay frame buffers. If
present, only TrueColor and DirectColor visuals are considered. Other‐
wise, only PseudoColor and StaticColor visuals are considered. If
present, only double-buffered visuals are considered. Otherwise, only
single-buffered visuals are considered. If present, only stereo visu‐
als are considered. Otherwise, only monoscopic visuals are considered.
Must be followed by a nonnegative integer that indicates the desired
number of auxiliary buffers. Visuals with the smallest number of aux‐
iliary buffers that meets or exceeds the specified number are pre‐
ferred. Must be followed by a nonnegative minimum size specification.
If this value is zero, the smallest available red buffer is preferred.
Otherwise, the largest available red buffer of at least the minimum
size is preferred. Must be followed by a nonnegative minimum size
specification. If this value is zero, the smallest available green buf‐
fer is preferred. Otherwise, the largest available green buffer of at
least the minimum size is preferred. Must be followed by a nonnegative
minimum size specification. If this value is zero, the smallest avail‐
able blue buffer is preferred. Otherwise, the largest available blue
buffer of at least the minimum size is preferred. Must be followed by
a nonnegative minimum size specification. If this value is zero, the
smallest available alpha buffer is preferred. Otherwise, the largest
available alpha buffer of at least the minimum size is preferred. Must
be followed by a nonnegative minimum size specification. If this value
is zero, visuals with no depth buffer are preferred. Otherwise, the
largest available depth buffer of at least the minimum size is pre‐
ferred. Must be followed by a nonnegative integer that indicates the
desired number of stencil bitplanes. The smallest stencil buffer of at
least the specified size is preferred. If the desired value is zero,
visuals with no stencil buffer are preferred. Must be followed by a
nonnegative minimum size specification. If this value is zero, visuals
with no red accumulation buffer are preferred. Otherwise, the largest
possible red accumulation buffer of at least the minimum size is pre‐
ferred. Must be followed by a nonnegative minimum size specification.
If this value is zero, visuals with no green accumulation buffer are
preferred. Otherwise, the largest possible green accumulation buffer of
at least the minimum size is preferred. Must be followed by a nonnega‐
tive minimum size specification. If this value is zero, visuals with no
blue accumulation buffer are preferred. Otherwise, the largest possible
blue accumulation buffer of at least the minimum size is preferred.
Must be followed by a nonnegative minimum size specification. If this
value is zero, visuals with no alpha accumulation buffer are preferred.
Otherwise, the largest possible alpha accumulation buffer of at least
the minimum size is preferred.
NOTES
XVisualInfo is defined in Xutil.h. It is a structure that includes
visual, visualID, screen, and depth elements.
glXChooseVisual() is implemented as a client-side utility using only
XGetVisualInfo and glXGetConfig(). Calls to these two routines can be
used to implement selection algorithms other than the generic one
implemented by glXChooseVisual().
GLX implementers are strongly discouraged, but not proscribed, from
changing the selection algorithm used by glXChooseVisual(). Therefore,
selections may change from release to release of the client-side
library.
There is no direct filter for picking only visuals that support GLX‐
Pixmaps. GLXPixmaps are supported for visuals whose GLX_BUFFER_SIZE is
one of the pixmap depths supported by the X server.
ERRORS
NULL is returned if an undefined GLX attribute is encountered in attri‐
bList.
EXAMPLES
Specifies a single-buffered RGB visual in the normal frame buffer, not
an overlay or underlay buffer. The returned visual supports at least
four bits each of red, green, and blue, and possibly no bits of alpha.
It does not support color index mode, double-buffering, or stereo dis‐
play. It may or may not have one or more auxiliary color buffers, a
depth buffer, a stencil buffer, or an accumulation buffer.
SEE ALSOglXCreateContext(3), glXGetConfig(3)glXChooseVisual()