GLXCHOOSEFBCONFIGSGIX(3gl)GLXCHOOSEFBCONFIGSGIX(3gl)NAME
glXChooseFBConfigSGIX - return a visual that matches specified
attributes
C SPECIFICATION
GLXFBConfigSGIX* glXChooseFBConfigSGIX( Display *dpy,
int screen,
int *attribList,
int *nelements )
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.
nelements Specifies the number of configs returned.
DESCRIPTION
A GLXFBConfigSGIX describes the format, type and size of the color buf‐
fers and ancillary buffers for a GLXDrawable. When the GLXDrawable is a
window then the GLXFBConfigSGIX that describes it has an associated X
Visual; for GLXPixmaps and GLXPbuffers there may or may not be an X
Visual associated with the GLXFBConfigSGIX.
Use glXChooseFBConfigSGIX to get GLXFBConfigSGIXs that match a list of
attributes or to get the list of GLXFBConfigSGIXs that are available on
the specified screen.
If attribList is NULL then glXChooseFBConfigSGIX returns an array of
GLXFBConfigSGIXs that are available on the specified screen; otherwise
this call returns an array of GLXFBConfigSGIXs that match the specified
attributes. See glXGetFBConfigAttribSGIX for a list of attributes. The
number of elements in the array is returned in nelements. The
attributes are matched in an attribute-specific manner, as shown in Ta‐
ble 1 below. 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. To retrieve the GLXFBConfigSGIX,
given an i.d., use the GLX_FBCONFIG_ID_SGIX attribute. When GLX_FBCON‐
FIG_ID_SGIX is specified, all other attributes are ignored, and only
the GLXFBConfigSGIX with the given XID is returned (NULL is returned if
it does not exist).
If no conforming GLXFBConfigSGIX exists, or if an error occurs then
NULL is returned. If attribList is not NULL and more than one GLXFBCon‐
figSGIX is found, then a list of GLXFBConfigSGIXs, sorted according to
the "best" match criteria, is returned. The exact sorting precedence
order is described later. Use XFree to free the memory returned by
glXChooseFBConfigSGIX.
If GLX_RENDER_TYPE_SGIX is in attribList then the value that follows is
a mask indicating which type of GLXContexts drawables created with the
corresponding GLXFBConfigSGIXs be bound to. For example, if
GLX_RGBA_BIT_SGIX | GLX_COLOR_INDEX_BIT_SGIX is specified as the mask
then glXChooseFBConfigSGIX will search for GLXFBConfigSGIXs that can be
used to create drawables that can be bound to both RGBA and color index
rendering contexts. The default value for GLX_RENDER_TYPE_SGIX is
GLX_RGBA_BIT_SGIX.
The attribute GLX_DRAWABLE_TYPE_SGIX has as its value a mask indicating
the drawable types that can be created with the corresponding GLXFBCon‐
figSGIX (the config is said to ``support'' these drawable types). For
example, a GLXFBConfigSGIX for which the value of GLX_DRAW‐
ABLE_TYPE_SGIX attribute is GLX_WINDOW_BIT_SGIX | GLX_PIXMAP_BIT_SGIX
can be used to create both Windows and GLX pixmaps, while a config for
which this attribute value is GLX_WINDOW_BIT_SGIX can not be used for
creating GLX pixmaps. The default value for GLX_DRAWABLE_TYPE_SGIX is
GLX_WINDOW_BIT_SGIX.
If a GLXFBConfigSGIX supports Windows then it has an associated X Vis‐
ual. The value of the GLX_X_VISUAL_TYPE_EXT attribute specifies the
type of X Visual. The possible values are:
┌─────────────────────────────────────┐
│ GLX Token Name X Visual Type │
├─────────────────────────────────────┤
│GLX_TRUE_COLOR_EXT TrueColor │
│GLX_DIRECT_COLOR_EXT DirectColor │
│GLX_PSEUDO_COLOR_EXT PseudoColor │
│GLX_STATIC_COLOR_EXT StaticColor │
│GLX_GRAY_SCALE_EXT GrayScale │
│GLX_STATIC_GRAY_EXT StaticGray │
└─────────────────────────────────────┘
Note that RGBA rendering may be supported for any of the six Visual
types but color index rendering is only supported for PseudoColor,
StaticColor, GrayScale, and StaticGray visuals (i.e., single-channel
visuals). The GLX_X_VISUAL_TYPE_EXT attribute is ignored if GLX_DRAW‐
ABLE_TYPE_SGIX is specified in attribList and the mask that follows
does not have GLX_WINDOW_BIT_SGIX set.
GLX_X_RENDERABLE_SGIX is a boolean indicating whether X can be used to
render into a drawable created with the GLXFBConfigSGIX. This attribute
is True if the GLXFBConfigSGIX supports Windows and/or GLX pixmaps.
All attributes in attribList, including boolean attributes, are immedi‐
ately followed by the corresponding desired value. The list is termi‐
nated with None. If an attribute is not specified in attribList then
the default value (listed in Table 1) is used (it is said to be speci‐
fied implicitly). For example, if GLX_STEREO is not specified then it
is assumed to be False. For some attributes, the default is "don't
care" meaning that any value is OK for this attribute, so the attribute
will not be checked.
┌────────────────────────────────────────────────────────────────┐
│ Attribute default sorting criteria │
├────────────────────────────────────────────────────────────────┤
│GLX_BUFFER_SIZE 0 smaller │
│GLX_LEVEL 0 exact │
│GLX_DOUBLEBUFFER don't care smaller │
│GLX_STEREO False exact │
│GLX_AUX_BUFFERS 0 smaller │
│GLX_RED_SIZE 0 larger │
│GLX_GREEN_SIZE 0 larger │
│GLX_BLUE_SIZE 0 larger │
│GLX_ALPHA_SIZE 0 larger │
│GLX_DEPTH_SIZE 0 larger │
│GLX_STENCIL_SIZE 0 larger │
│GLX_ACCUM_RED_SIZE 0 larger │
│GLX_ACCUM_GREEN_SIZE 0 larger │
│GLX_ACCUM_BLUE_SIZE 0 larger │
│GLX_ACCUM_ALPHA_SIZE 0 larger │
│GLX_SAMPLE_BUFFERS_SGIS 0 smaller │
│GLX_SAMPLES_SGIS 0 smaller │
│GLX_X_VISUAL_TYPE_EXT don't care exact │
│GLX_TRANSPARENT_TYPE_EXT don't care exact │
│GLX_NONE_EXT don't care exact │
│GLX_TRANSPARENT_INDEX_VALUE_EXT don't care exact │
│GLX_TRANSPARENT_RED_VALUE_EXT don't care exact │
│GLX_TRANSPARENT_GREEN_VALUE_EXT don't care exact │
│GLX_TRANSPARENT_BLUE_VALUE_EXT don't care exact │
│GLX_TRANSPARENT_ALPHA_VALUE_EXT don't care exact │
│GLX_VISUAL_CAVEAT_EXT don't care exact │
│GLX_DRAWABLE_TYPE_SGIX don't care exact │
│GLX_WINDOW_BIT_SGIX don't care mask │
│GLX_RENDER_TYPE_SGIX don't care mask │
│GLX_RGBA_BIT_SGIX don't care mask │
│GLX_X_RENDERABLE_SGIX don't care exact │
│GLX_FBCONFIG_ID_SGIX don't care exact │
│GLX_MAX_PBUFFER_WIDTH_SGIX 0 minimum │
│GLX_MAX_PBUFFER_HEIGHT_SGIX 0 minimum │
│GLX_MAX_PBUFFER_PIXELS_SGIX 0 minimum │
│GLX_OPTIMAL_PBUFFER_WIDTH_SGIX ignored ignored │
│GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX ignored ignored │
└────────────────────────────────────────────────────────────────┘
When more than one GLXFBConfigSGIX matches the specification, a list of
matching configurations is returned. The list is sorted according to
the following precedence rules that are applied in ascending order
(i.e., configurations that are considered equal by lower numbered rule
are sorted by the higher numbered rule):
1. by GLX_VISUAL_RATING_EXT where the precedence is GLX_NONE_EXT,
GLX_SLOW_VISUAL.
2. larger total number of RGBA color components
(GLX_RED_BITS,GLX_GREEN_BITS, GLX_BLUE_BITS, and GLX_ALPHA_BITS)
that have higher number of bits,
3. smaller GLX_INDEX_BITS,
4. single buffered configuration (GLX_DOUBLE_BUFFER being False)
precedes a double buffered one,
5. smaller GLX_AUX_BUFFERS,
6. smaller GLX_SAMPLE_BUFFERS_SGIS,
7. smaller GLX_SAMPLES_SGIS,
8. larger GLX_DEPTH_BITS,
9. smaller GLX_STENCIL_BITS,
10. larger total number of accumulation buffer color components
(GLX_ACCUM_RED_BITS, GLX_ACCUM_GREEN_BITS, GLX_ACCUM_BLUE_BITS,
and GLX_ACCUM_ALPHA_BITS) that have higher number of bits;
11. sort by GLX_VISUAL_TYPE_EXT where the precedence order is
GLX_TRUE_COLOR_EXT, GLX_DIRECT_COLOR_EXT, GLX_PSEUDO_COLOR_EXT,
GLX_STATIC_COLOR_EXT, GLX_GRAY_SCALE_EXT, GLX_STATIC_GRAY_EXT
The definition of the sorting criteria is as follow:
smaller configs with attribute value that meets or exceeds the speci‐
fied value are returned, with precedence given to smaller val‐
ues (when a value is not explicitly requested, the default is
implied);
larger when the value is requested explicitly, only configs with a
corresponding attribute value that meet or exceed the speci‐
fied value are returned, with precedence given to larger val‐
ues. When the value is not requested explicitly behaves
exactly like the ``smaller'' criterion.
exact only configs whose corresponding attribute value exactly
matches the requested value are considered. mask - only con‐
figs for which the set bits of corresponding attribute include
all the bits that are set in the requested value are consid‐
ered (Additional bits might be set in the attribute).
NOTES
GLX_SGIX_fbconfig extension should be supported for this function to be
valid.
This function is superseded by glXChooseFBConfig, which is part of GLX
Version 1.3 command set. glXChooseFBConfigSGIX is only supported for
backward comaptibility.
ERRORS
NULL is returned if an undefined GLX attribute is encountered in attri‐
bList. or dpy does not support GLX extension or screen is invalid.
SEE ALSO
glXCreateContextWithConfigSGIX, glXCreateGLXPixmapWithConfigSGIX,
glXGetVisualFromFBConfigSGIX, glXGetFBConfigFromVisualSGIX, glXGetFB‐
ConfigAttribSGIX
21 May 01 GLXCHOOSEFBCONFIGSGIX(3gl)