glXChooseVisual
NAME
glXChooseVisual -- return a visual that matches specified attributes
C SPECIFICATION
XVisualInfo* glXChooseVisual(Display *dpy,
int screen,
int *attribList)
PARAMETERS
- dpy
-
Specifies the connection to the X server.
- screen
-
Specifies the screen number.
- attribList
-
Specifies a list of Boolean attributes and integer attribute/value pairs.
The last attribute must be None.
DESCRIPTION
glXChooseVisual 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 are followed immediately
by the corresponding desired or minimum value. The list must be terminated
with None.
The interpretations of the various GLX visual attributes are as follows:
- GLX_USE_GL
-
Ignored. Only visuals that can be rendered with GLX are considered.
- GLX_BUFFER_SIZE
-
Must be followed by a nonnegative integer thatindicates the desired
color index buffer size. The smallest index buffer of at least the
specified size is preferred. Ignored if GLX_RGBA is asserted.
- GLX_LEVEL
-
Must be followed by an integer buffer-level specification. This
specification is honored exactly. Buffer level zero corresponds to the
default 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.
- GLX_RGBA
-
If present, only TrueColor and DirectColor visuals are considered.
Otherwise, only PseudoColor and StaticColor visuals are considered.
- GLX_DOUBLEBUFFER
-
If present, only double-buffered visuals are considered. Otherwise, only
single-buffered visuals are considered.
- GLX_STEREO
-
If present, only stereo visuals are considered. Otherwise, only monoscopic
visuals are considered.
- GLX_AUX_BUFFERS
-
Must be followed by a nonnegative integer that indicates the desired
number of auxiliary buffers. Visuals with the smallest number of auxiliary
buffers that meets or exceeds the specified number are preferred.
- GLX_RED_SIZE
-
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.
- GLX_GREEN_SIZE
-
Must be followed by a nonnegative minimum size specification. If this
value is zero, the smallest available green buffer is preferred.
Otherwise, the largest available green buffer of at least the minimum
size is preferred.
- GLX_BLUE_SIZE
-
Must be followed by a nonnegative minimum size specification. If this
value is zero, the smallest available blue buffer is preferred.
Otherwise, the largest available blue buffer of at least the minimum
size is preferred.
- GLX_ALPHA_SIZE
-
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.
- GLX_DEPTH_SIZE
-
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
preferred.
- GLX_STENCIL_SIZE
-
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.
- GLX_ACCUM_RED_SIZE
-
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 preferred.
- GLX_ACCUM_GREEN_SIZE
-
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.
- GLX_ACCUM_BLUE_SIZE
-
Must be followed by a nonnegative 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.
- GLX_ACCUM_ALPHA_SIZE
-
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.
EXAMPLES
attribList =
{GLX_RGBA, GLX_RED_SIZE, 4, GLX_GREEN_SIZE, 4,
GLX_BLUE_SIZE, 4, None};
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 display.
It may or may not have one or more auxiliary color buffers, a depth
buffer, a stencil buffer, or an accumulation buffer.
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 GLXPixmaps.
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
attribList.
SEE ALSO
glXCreateContext,
glXGetConfig
back to the OpenGL index page
© 1995 Uwe Behrens All rights reserved