[Front] [Reference] [Imp. Guide] [Index]

glXGetConfig
[Prev] [Next]

glXGetConfig: return information about GLX visuals.

C Specification | Parameters | Description | Notes | Errors | See Also

[Up] C Specification

int glXGetConfig(
    Display	*dpy,
    XVisualInfo	*vis,
    int		attrib,
    int		*value)

[Up] Parameters

dpy
Specifies the connection to the X server.
vis
Specifies the visual to be queried. It is a pointer to an XVisualInfo structure, not a visual ID or a pointer to a Visual.
attrib
Specifies the visual attribute to be returned.
value
Returns the requested value.

[Up] Description

glXGetConfig sets value to the attrib value of windows or GLX pixmaps created with respect to vis. glXGetConfig returns an error code if it fails for any reason. Otherwise, zero is returned.

attrib is one of the following:

GLX_USE_GL
True if OpenGL rendering is supported by this visual, False otherwise.
GLX_BUFFER_SIZE
Number of bits per color buffer. For RGBA visuals, GLX_BUFFER_SIZE is the sum of GLX_RED_SIZE, GLX_GREEN_SIZE, GLX_BLUE_SIZE, and GLX_ALPHA_SIZE. For color index visuals, GLX_BUFFER_SIZE is the size of the color indexes.
GLX_LEVEL
Frame buffer level of the visual. 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 underlay the default buffer.
GLX_RGBA
True if color buffers store red, green, blue, and alpha values. False if they store color indexes.
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 GLX_RGBA is False.
GLX_GREEN_SIZE
Number of bits of green stored in each color buffer. Undefined if GLX_RGBA is False.
GLX_BLUE_SIZE
Number of bits of blue stored in each color buffer. Undefined if GLX_RGBA is False.
GLX_ALPHA_SIZE
Number of bits of alpha stored in each color buffer. Undefined if GLX_RGBA is False.
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.
The X protocol allows a single visual ID to be instantiated with different numbers of bits per pixel. Windows or GLX pixmaps that will be rendered with OpenGL, however, must be instantiated with a color buffer depth of GLX_BUFFER_SIZE.

Although a GLX implementation can export many visuals that support GL rendering, it must support at least one RGBA visual. This visual must have at least one color buffer, a stencil buffer of at least 1 bit, a depth buffer of at least 12 bits, and an accumulation buffer. Alpha bitplanes are optional in this visual. However, its color buffer size must be as great as that of the deepest TrueColor, DirectColor, PseudoColor, or StaticColor visual supported on level zero, and it must itself be made available on level zero.

In addition, if the X server exports a PseudoColor or StaticColor visual on framebuffer level 0, a color index visual is also required on that level. It must have at least one color buffer, a stencil buffer of at least 1 bit, and a depth buffer of at least 12 bits. This visual must have as many color bitplanes as the deepest PseudoColor or StaticColor visual supported on level 0.

Applications are best written to select the visual that most closely meets their requirements. Creating windows or GLX pixmaps with unnecessary buffers can result in reduced rendering performance as well as poor resource allocation.

[Up] Notes

XVisualInfo is defined in Xutil.h. It is a structure that includes visual, visualID, screen, and depth elements.

[Up] Errors

[Up] See Also

glXChooseVisual,
glXCreateContext

[Prev] [Next]
Front Reference [Imp. Guide] Index