glXChooseVisual() glXChooseVisual()
glXChooseVisual - return a visual that matches specified
attributes
XVisualInfo* glXChooseVisual(
Display *dpy,
int screen,
int *attribList );
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.
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: Ignored. Only visuals that can be rendered
with GLX are considered. 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
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. If present,
only TrueColor and DirectColor visuals are considered.
Otherwise, 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 visuals 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 auxiliary buffers that meets or exceeds
the specified number are preferred. 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 buffer 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 available 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 preferred. 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 preferred.
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 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. 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.
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.
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.
glXCreateContext(3), glXGetConfig(3)
glXChooseVisual()
[ Back ] |