Table of Contents
glXChooseVisual - return a visual that matches specified attributes
XVisualInfo* glXChooseVisual( Display *dpy,
int screen,
int *attribList )
eqn not supported
- 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.
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 and enumerated type 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 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.
- GLX_LEVEL
- Must be followed by an integer
buffer-level specification. This specification 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.
- 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.
- 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.
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.
NULL is returned
if an undefined GLX attribute is encountered in attribList.
glXCreateContext,
glXGetConfig
Table of Contents