XdbeGetVisualInfo(3) X Version 11 XdbeGetVisualInfo(3)

# [NAME](#NAME)

XdbeGetVisualInfo - Get dbe Visual Information

# [SYNOPSIS](#SYNOPSIS)

```
#include <X11/extensions/Xdbe.h>

XdbeScreenVisualInfo *XdbeGetVisualInfo(


    Display  *dpy,


    Drawable *screen_specifiers,


    int      *num_screens)
```

# [DESCRIPTION](#DESCRIPTION)

This function returns information about which visuals support double buffering. The argument *num\_screens* specifies how many elements there are in the *screen\_specifiers* list. Each drawable in *screen\_specifiers* designates a screen for which the supported visuals are being requested. If *num\_screens* is zero, information for all screens is requested. In this case, upon return from this function, *num\_screens* will be set to the number of screens that were found. If an error occurs, this function returns NULL, else it returns a pointer to a list of **XdbeScreenVisualInfo** structures of length *num\_screens.* The nth element in the returned list corresponds to the nth drawable in the *screen\_specifiers* list, unless *num\_screens* was passed in with the value zero, in which case the nth element in the returned list corresponds to the nth screen of the server, starting with screen zero. The **XdbeScreenVisualInfo** structure has the following fields:

```


     int            count


     XdbeVisualInfo *visinfo
```

*count* specifies the number of items in *visinfo.* *visinfo* specifies a list of visuals, depths, and performance hints for this screen.

The **XdbeVisualInfo** structure has the following fields:

```


     VisualID visual


     int      depth


     int      perflevel
```

*visual* specifies one visual ID that supports double-buffering. *depth* specifies the depth of the visual. *perflevel* is a performance hint.

The only operation defined on a *perflevel* is comparison to a *perflevel* of another visual on the same screen. The visual having the higher *perflevel* is likely to have better double-buffering graphics performance than the visual having the lower *perflevel*. Nothing can be deduced from the following: the magnitude of the difference of two *perflevels*, a *perflevel* value in isolation, or comparing *perflevels* from different servers.

# [ERRORS](#ERRORS)

[BadDrawable](#BadDrawable)

One or more values passed in *screen\_specifiers* is not a valid drawable.

# [SEE ALSO](#SEE_ALSO)

[**DBE**(3)](/man/os/libxext/DBE.3), [**XdbeAllocateBackBufferName**(3)](/man/os/libxext/XdbeAllocateBackBufferName.3), [**XdbeBeginIdiom**(3)](/man/os/libxext/XdbeBeginIdiom.3), [**XdbeDeallocateBackBufferName**(3)](/man/os/libxext/XdbeDeallocateBackBufferName.3), [**XdbeEndIdiom**(3)](/man/os/libxext/XdbeEndIdiom.3), [**XdbeFreeVisualInfo**(3)](/man/os/libxext/XdbeFreeVisualInfo.3), [**XdbeGetBackBufferAttributes**(3)](/man/os/libxext/XdbeGetBackBufferAttributes.3), [**XdbeQueryExtension**(3)](/man/os/libxext/XdbeQueryExtension.3), [**XdbeSwapBuffers**(3)](/man/os/libxext/XdbeSwapBuffers.3).

1996-03-11 libXext 1.3.7

---

Document: XdbeGetVisualInfo(3) from libxext 1.3.7-r4 (Chainguard OS)
Source: https://gitlab.freedesktop.org/xorg/lib/libxext.git
