1991-2006
Silicon Graphics, Inc.
glXGetFBConfigAttrib
3G

# glXGetFBConfigAttrib

return information about a GLX frame buffer configuration

## C Specification

                    int glXGetFBConfigAttrib
                    Display * dpy
                    GLXFBConfig config
                    int attribute
                    int * value

## Parameters

`dpy`

  Specifies the connection to the X server.

`config`

  Specifies the GLX frame buffer configuration to be queried.

`attribute`

  Specifies the attribute to be returned.

`value`

  Returns the requested value.

## Description

`glXGetFBConfigAttrib` sets `value` to the `attribute` value of GLX drawables created with respect to `config`. `glXGetFBConfigAttrib` returns an error code if it fails for any reason. Otherwise, `Success` is returned.

`attribute` is one of the following:

`GLX_FBCONFIG_ID`

  XID of the given GLXFBConfig.

`GLX_BUFFER_SIZE`

  Number of bits per color buffer. If the frame buffer configuration supports RGBA contexts, then `GLX_BUFFER_SIZE` is the sum of `GLX_RED_SIZE`, `GLX_GREEN_SIZE`, `GLX_BLUE_SIZE`, and `GLX_ALPHA_SIZE`. If the frame buffer configuration supports only color index contexts, `GLX_BUFFER_SIZE` is the size of the color indexes.

`GLX_LEVEL`

  Frame buffer level of the configuration. Level zero is the default frame buffer. Positive levels correspond to frame buffers that overlay the default buffer, and negative levels correspond to frame buffers that underlie the default buffer.

`GLX_DOUBLEBUFFER`

  `True` if color buffers exist in front/back pairs that can be swapped, `False` otherwise.

`GLX_STEREO`

  `True` if color buffers exist in left/right pairs, `False` otherwise.

`GLX_AUX_BUFFERS`

  Number of auxiliary color buffers that are available. Zero indicates that no auxiliary color buffers exist.

`GLX_RED_SIZE`

  Number of bits of red stored in each color buffer. Undefined if RGBA contexts are not supported by the frame buffer configuration.

`GLX_GREEN_SIZE`

  Number of bits of green stored in each color buffer. Undefined if RGBA contexts are not supported by the frame buffer configuration.

`GLX_BLUE_SIZE`

  Number of bits of blue stored in each color buffer. Undefined if RGBA contexts are not supported by the frame buffer configuration.

`GLX_ALPHA_SIZE`

  Number of bits of alpha stored in each color buffer. Undefined if RGBA contexts are not supported by the frame buffer configuration.

`GLX_DEPTH_SIZE`

  Number of bits in the depth buffer.

`GLX_STENCIL_SIZE`

  Number of bits in the stencil buffer.

`GLX_ACCUM_RED_SIZE`

  Number of bits of red stored in the accumulation buffer.

`GLX_ACCUM_GREEN_SIZE`

  Number of bits of green stored in the accumulation buffer.

`GLX_ACCUM_BLUE_SIZE`

  Number of bits of blue stored in the accumulation buffer.

`GLX_ACCUM_ALPHA_SIZE`

  Number of bits of alpha stored in the accumulation buffer.

`GLX_RENDER_TYPE`

  Mask indicating what type of GLX contexts can be made current to the frame buffer configuration. Valid bits are `GLX_RGBA_BIT` and `GLX_COLOR_INDEX_BIT`.

`GLX_DRAWABLE_TYPE`

  Mask indicating what drawable types the frame buffer configuration supports. Valid bits are `GLX_WINDOW_BIT`, `GLX_PIXMAP_BIT`, and `GLX_PBUFFER_BIT`.

`GLX_X_RENDERABLE`

  `True` if drawables created with the frame buffer configuration can be rendered to by X.

`GLX_VISUAL_ID`

  XID of the corresponding visual, or zero if there is no associated visual (i.e., if `GLX_X_RENDERABLE` is `False` or `GLX_DRAWABLE_TYPE` does not have the `GLX_WINDOW_BIT` bit set).

`GLX_X_VISUAL_TYPE`

  Visual type of associated visual. The returned value will be one of: `GLX_TRUE_COLOR`, `GLX_DIRECT_COLOR`, `GLX_PSEUDO_COLOR`, `GLX_STATIC_COLOR`, `GLX_GRAY_SCALE`, `GLX_STATIC_GRAY`, or `GLX_NONE`, if there is no associated visual (i.e., if `GLX_X_RENDERABLE` is `False` or `GLX_DRAWABLE_TYPE` does not have the `GLX_WINDOW_BIT` bit set).

`GLX_CONFIG_CAVEAT`

  One of `GLX_NONE`, `GLX_SLOW_CONFIG`, or `GLX_NON_CONFORMANT_CONFIG`, indicating that the frame buffer configuration has no caveats, some aspect of the frame buffer configuration runs slower than other frame buffer configurations, or some aspect of the frame buffer configuration is nonconformant, respectively.

`GLX_TRANSPARENT_TYPE`

  One of `GLX_NONE`, `GLX_TRANSPARENT_RGB`, `GLX_TRANSPARENT_INDEX`, indicating that the frame buffer configuration is opaque, is transparent for particular values of red, green, and blue, or is transparent for particular index values, respectively.

`GLX_TRANSPARENT_INDEX_VALUE`

  Integer value between 0 and the maximum frame buffer value for indices, indicating the transparent index value for the frame buffer configuration. Undefined if `GLX_TRANSPARENT_TYPE` is not `GLX_TRANSPARENT_INDEX`.

`GLX_TRANSPARENT_RED_VALUE`

  Integer value between 0 and the maximum frame buffer value for red, indicating the transparent red value for the frame buffer configuration. Undefined if `GLX_TRANSPARENT_TYPE` is not `GLX_TRANSPARENT_RGB`.

`GLX_TRANSPARENT_GREEN_VALUE`

  Integer value between 0 and the maximum frame buffer value for green, indicating the transparent green value for the frame buffer configuration. Undefined if `GLX_TRANSPARENT_TYPE` is not `GLX_TRANSPARENT_RGB`.

`GLX_TRANSPARENT_BLUE_VALUE`

  Integer value between 0 and the maximum frame buffer value for blue, indicating the transparent blue value for the frame buffer configuration. Undefined if `GLX_TRANSPARENT_TYPE` is not `GLX_TRANSPARENT_RGB`.

`GLX_TRANSPARENT_ALPHA_VALUE`

  Integer value between 0 and the maximum frame buffer value for alpha, indicating the transparent blue value for the frame buffer configuration. Undefined if `GLX_TRANSPARENT_TYPE` is not `GLX_TRANSPARENT_RGB`.

`GLX_MAX_PBUFFER_WIDTH`

  The maximum width that can be specified to glXCreatePbuffer.

`GLX_MAX_PBUFFER_HEIGHT`

  The maximum height that can be specified to glXCreatePbuffer.

`GLX_MAX_PBUFFER_PIXELS`

  The maximum number of pixels (width times height) for a pixel buffer. Note that this value may be less than `GLX_MAX_PBUFFER_WIDTH` times `GLX_MAX_PBUFFER_HEIGHT`. Also, this value is static and assumes that no other pixel buffers or X resources are contending for the frame buffer memory. As a result, it may not be possible to allocate a pixel buffer of the size given by `GLX_MAX_PBUFFER_PIXELS`.

Applications should choose the frame buffer configuration that most closely meets their requirements. Creating windows, GLX pixmaps, or GLX pixel buffers with unnecessary buffers can result in reduced rendering performance as well as poor resource allocation.

## Notes

`glXGetFBConfigAttrib` 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 version is 1.3, then the GL version must be 1.2.

## Errors

`GLX_NO_EXTENSION` is returned if `dpy` does not support the GLX extension. `GLX_BAD_ATTRIBUTE` is returned if `attribute` is not a valid GLX attribute.

## See Also

glXGetFBConfigs, glXChooseFBConfig, glXGetVisualFromFBConfig, glXGetConfig

## Copyright

Copyright 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.