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