C SPECIFICATION
GLXFBConfig glXChooseFBConfig( Display *dpy,
int scree )
GLXFBConfig * glXChooseFBConfig( Display *,
int int,
const int *,
int * )
PARAMETERS
Specifies the connection to the X server.
int Specifies the screen number.
Specifies a list of attribute/value pairs.
The last attribute must be None.
Returns the number of elements in the list returned by
glXChooseFBConfig.
DESCRIPTION
glXChooseFBConfig returns GLX frame buffer configurations that match
the attributes specified in , or NULL, if no matches are found. If is
NULL then glXChooseFBConfig returns an array of GLX frame buffer con-
figurations that are available on the specified screen. If an error
occurs, no frame buffer configurations exist on the specified screen,
or if no frame buffer configurations match the specified attributes,
then NULL is returned. Use XFree to free the memory returned by
glXChooseFBConfig.
All attributes in , including boolean attributes, are immediately fol-
lowed by the corresponding desired value. The list is terminated with
None. If an attribute is not specified in then the default value (see
below) is used (and the attribute is said to be specified implicitly).
For example, if GLX_STEREO is not specified then it is assumed to be
False. For some attributes, the default is GLX_DONT_CARE meaning that
any value is OK for this attribute, so the attribute will not be
checked.
Attributes are matched in an attribute-specific manner. Some of the
attributes, such as GLX_LEVEL, must match the specified value exactly;
others, such as, GLX_RED_SIZE must meet or exceed the specified minimum
values. If more than one GLX frame buffer configuration is found, then
a list of configurations, sorted according to the ''best'' match crite-
ria, is returned. The match criteria for each attribute and the exact
sorting order is defined below.
The interpretations of the various GLX visual attributes are as fol-
GLX_LEVEL Must be followed by an integer buffer-level
specification. This specification is honored
exactly. Buffer level 0 corresponds to the
default frame buffer of the display. Buffer
level 1 is the first overlay frame buffer,
level two the second overlay frame buffer, and
so on. Negative buffer levels correspond to
underlay frame buffers. The default value is
0.
GLX_DOUBLEBUFFER Must be followed by True or False. If True is
specified, then only double-buffered frame
buffer configurations are considered; if False
is specified, then only single-buffered frame
buffer configurations are considered. The
default value is GLX_DONT_CARE.
GLX_STEREO Must be followed by True or False. If True is
specified, then only stereo frame buffer con-
figurations are considered; if False is speci-
fied, then only monoscopic frame buffer con-
figurations are considered. The default value
is False.
GLX_AUX_BUFFERS Must be followed by a nonnegative integer that
indicates the desired number of auxiliary
buffers. Configurations with the smallest
number of auxiliary buffers that meet or
exceed the specified number are preferred.
The default value is 0.
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. The
default value is 0.
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.
The default value is 0.
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.
The default value is 0.
GLX_STENCIL_SIZE Must be followed by a nonnegative integer that
indicates the desired number of stencil bit-
planes. The smallest stencil buffer of at
least the specified size is preferred. If the
desired value is zero, frame buffer configura-
tions with no stencil buffer are preferred.
The default value is 0.
GLX_ACCUM_RED_SIZE Must be followed by a nonnegative minimum size
specification. If this value is zero, frame
buffer configurations with no red accumulation
buffer are preferred. Otherwise, the largest
possible red accumulation buffer of at least
the minimum size is preferred. The default
value is 0.
GLX_ACCUM_GREEN_SIZE Must be followed by a nonnegative minimum size
specification. If this value is zero, frame
buffer configurations with no green accumula-
tion buffer are preferred. Otherwise, the
largest possible green accumulation buffer of
at least the minimum size is preferred. The
default value is 0.
GLX_ACCUM_BLUE_SIZE Must be followed by a nonnegative minimum size
specification. If this value is zero, frame
buffer configurations with no blue accumula-
tion buffer are preferred. Otherwise, the
largest possible blue accumulation buffer of
at least the minimum size is preferred. The
default value is 0.
GLX_ACCUM_ALPHA_SIZE Must be followed by a nonnegative minimum size
specification. If this value is zero, frame
buffer configurations with no alpha accumula-
tion buffer are preferred. Otherwise, the
largest possible alpha accumulation buffer of
at least the minimum size is preferred. The
default value is 0.
GLX_RENDER_TYPE Must be followed by a mask indicating which
OpenGL rendering modes the frame buffer con-
figuration must support. Valid bits are
GLX_RGBA_BIT and GLX_COLOR_INDEX_BIT. If the
mask is set to GLX_RGBA_BIT |
GLX_COLOR_INDEX_BIT then only frame buffer
configurations that can be bound to both RGBA
contexts and color index contexts will be con-
sidered. The default value is GLX_RGBA_BIT.
GLX_DRAWABLE_TYPE Must be followed by a mask indicating which
value is GLX_DONT_CARE.
GLX_X_VISUAL_TYPE Must be followed by one of GLX_TRUE_COLOR,
GLX_DIRECT_COLOR, GLX_PSEUDO_COLOR,
GLX_STATIC_COLOR, GLX_GRAY_SCALE,
GLX_STATIC_GRAY, indicating the desired X
visual type. Not all frame buffer configura-
tions have an associated X visual. If
GLX_DRAWABLE_TYPE is specified in and the
mask that follows does not have GLX_WINDOW_BIT
set, then this value is ignored. It is also
ignored if GLX_X_RENDERABLE is specified as
False.
RGBA rendering may be supported for visuals of
type GLX_TRUE_COLOR, GLX_DIRECT_COLOR,
GLX_PSEUDO_COLOR, or GLX_STATIC_COLOR, but
color index rendering is only supported for
visuals of type GLX_PSEUDO_COLOR or
GLX_STATIC_COLOR (i.e., single-channel visu-
als).
The tokens GLX_GRAY_SCALE and GLX_STATIC_GRAY
will not match current OpenGL enabled visuals,
but are included for future use.
The default value for GLX_X_VISUAL_TYPE is
GLX_DONT_CARE.
GLX_CONFIG_CAVEAT Must be followed by one of GLX_NONE,
GLX_SLOW_CONFIG, GLX_NON_CONFORMANT_CONFIG.
If GLX_NONE is specified, then only frame
buffer configurations with no caveats will be
considered; if GLX_SLOW_CONFIG is specified,
then only slow frame buffer configurations
will be considered; if
GLX_NON_CONFORMANT_CONFIG is specified, then
only non-conformant frame buffer configura-
tions will be considered. The default value
is GLX_DONT_CARE.
GLX_TRANSPARENT_TYPE Must be followed by one of GLX_NONE,
GLX_TRANSPARENT_RGB, GLX_TRANSPARENT_INDEX.
If GLX_NONE is specified, then only opaque
frame buffer configurations will be consid-
ered; if GLX_TRANSPARENT_RGB is specified,
then only transparent frame buffer configura-
tions that support RGBA rendering will be con-
sidered; if GLX_TRANSPARENT_INDEX is speci-
fied, then only transparent frame buffer con-
figurations that support color index rendering
will be considered. The default value is
GLX_TRANSPARENT_RED_VALUE
Must be followed by an integer value indicat-
ing the transparent red value; the value must
be between 0 and the maximum framebuffer value
for red. Only frame buffer configurations
that use the specified transparent red value
will be considered. The default value is
GLX_DONT_CARE.
This attribute is ignored unless
GLX_TRANSPARENT_TYPE is included in
and specified as GLX_TRANSPARENT_RGB.
GLX_TRANSPARENT_GREEN_VALUE
Must be followed by an integer value indicat-
ing the transparent green value; the value
must be between 0 and the maximum framebuffer
value for green. Only frame buffer configura-
tions that use the specified transparent green
value will be considered. The default value
is GLX_DONT_CARE.
This attribute is ignored unless
GLX_TRANSPARENT_TYPE is included in
and specified as GLX_TRANSPARENT_RGB.
GLX_TRANSPARENT_BLUE_VALUE
Must be followed by an integer value indicat-
ing the transparent blue value; the value must
be between 0 and the maximum framebuffer value
for blue. Only frame buffer configurations
that use the specified transparent blue value
will be considered. The default value is
GLX_DONT_CARE.
This attribute is ignored unless
GLX_TRANSPARENT_TYPE is included in
and specified as GLX_TRANSPARENT_RGB.
GLX_TRANSPARENT_ALPHA_VALUE
Must be followed by an integer value indicat-
ing the transparent alpha value; the value
must be between 0 and the maximum framebuffer
value for alpha. Only frame buffer configura-
tions that use the specified transparent alpha
value will be considered. The default value
is GLX_DONT_CARE.
When more than one GLX frame buffer configuration matches the specified
attributes, a list of matching configurations is returned. The list is
sorted according to the following precedence rules, which are applied
4. Single buffered configuration (GLX_DOUBLEBUFFER being False pre-
cedes a double buffered one.
5. Smaller GLX_AUX_BUFFERS.
6. Larger GLX_DEPTH_SIZE.
7. Smaller GLX_STENCIL_SIZE.
8. Larger total number of accumulation buffer color components (-
GLX_ACCUM_RED_SIZE, GLX_ACCUM_GREEN_SIZE, GLX_ACCUM_BLUE_SIZE,
plus GLX_ACCUM_ALPHA_SIZE) that have higher number of bits. If the
requested number of bits in is zero or GLX_DONT_CARE for a par-
ticular color component, then the number of bits for that compo-
nent is not considered.
9. By GLX_X_VISUAL_TYPE where the precedence order is GLX_TRUE_COLOR,
GLX_DIRECT_COLOR, GLX_PSEUDO_COLOR, GLX_STATIC_COLOR,
GLX_GRAY_SCALE, GLX_STATIC_GRAY.
EXAMPLES
= {GLX_RENDER_TYPE, GLX_RGBA_BIT, GLX_RED_SIZE, 4,
GLX_GREEN_SIZE, 4, GLX_BLUE_SIZE, 4, None};
Specifies a frame buffer configuration that supports RGBA rendering and
exists 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 stereo dis-
play. It may or may not have one or more auxiliary color buffers, a
back buffer, a depth buffer, a stencil buffer, or an accumulation
buffer.
NOTES
glXChooseFBConfig is available only if the GLX version is 1.3 or
greater.
If the GLX version is 1.1 or 1.0, the GL version must be 1.0. If the
GLX version is 1.2, then the GL version must be 1.1. If the GLX ver-
sion is 1.3, then the GL version must be 1.2.
glXGetFBConfigs and glXGetFBConfigAttrib can be used to implement
selection algorithms other than the generic one implemented by
glXChooseFBConfig. Call glXChooseFBConfig to retrieve all the frame
buffer configurations on a particular screen or, alternatively, all the
frame buffer configurations with a particular set of attributes. Next
call glGetFBConfigAttrib to retrieve additional attributes for the
frame buffer configurations and then select between them.
GLX implementers are strongly discouraged, but not proscribed, from
changing the selection algorithm used by glXChooseFBConfig. Therefore,
selections may change from release to release of the client-side
library.
Man(1) output converted with
man2html