XEVI(3) X Version 11 XEVI(3)

# [NAME](#NAME)

XeviQueryExtension, XeviQueryVersion, XeviGetVisualInfo - X Extended Visual Information functions

# [SYNOPSIS](#SYNOPSIS)

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

Bool
XeviQueryExtension (Display *dpy);

Bool
XeviQueryVersion (Display *dpy,


    int *major_version_return,


    int *minor_version_return);

int
XeviGetVisualInfo (Display *dpy, VisualID *visual,


    int n_visual, ExtendedVisualInfo **evi_return,


    int *n_info_return);
```

# [DESCRIPTION](#DESCRIPTION)

The X11 Extended Visual Information extension (EVI) allows a client to determine information about core X visuals beyond what the core protocol provides.

The EVI application programming library contains the interfaces described below. With the exception of **XeviQueryExtension**, if any of these routines are called with a display that does not support the extension, the ExtensionErrorHandler (which can be set with **XSetExtensionErrorHandler** and functions the same way as **XSetErrorHandler**) will be called and the function will then return.

**XeviQueryExtension** returns **True** if the Extended Visual Information extension is available on the given display. A client must call **XeviQueryExtension** before calling any other EVI function in order to negotiate a compatible protocol version; otherwise the client will get undefined behavior (EVI may or may not work).

**XeviQueryVersion** returns **True** if the request succeeded; the values of the major and minor protocol version supported by the server are returned in *major\_version\_return* and *minor\_version\_return*.

**XeviGetVisualInfo** returns a list of ExtendedVisualInfo structures that describe visual information beyond that supported by the core protocol. This includes layer information relevant for systems supporting overlays and/or underlay planes, and information that allows applications better to determine the level of hardware support for multiple colormaps. XeviGetVisualInfo returns **Success** if successful, or an X error otherwise. If the argument *visual* is NULL, then information for all visuals of all screens is returned. Otherwise, it's a pointer to a list of visuals for which extended visual information is desired. *n\_visual* is the number of elements in the array visual. *evi\_return* returns a pointer to a list of ExtendedVisualInfo. When done, the client should free the list using XFree. *n\_info\_return* returns the number of elements in the array evi\_return.

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

```
VisualID	core_visual_id
int 	screen
int 	level
unsigned int	transparency_type
unsigned int	transparency_value
unsigned int	min_hw_colormaps
unsigned int	max_hw_colormaps
unsigned int	num_colormap_conflicts
VisualID *  	colormap_conflicts
```

The combination of *core\_visual\_id* and *screen* number uniquely specify the visual being described.

*level* returns the level number for the visual, 0 for normal planes, &gt; 0 for overlays, &lt; 0 for underlays.

*transparency\_type* returns the type of transparency supported by the visual. XEVI\_TRANSPARENCY\_NONE if there are no transparent pixels, XEVI\_TRANSPARENCY\_PIXEL if the visual supports a transparent pixel, XEVI\_TRANSPARENCY\_MASK if the visual supports transparent plane(s).

*transparency\_value* returns the pixel/plane value to set for transparency if transparency\_type isn't XEVI\_TRANSPARENCY\_NONE.

*min\_hw\_colormaps* and *max\_hw\_colormaps* return the minimum and maximum number of hardware colormaps backing up the visual.

*num\_colormap\_conflicts* returns the number of elements in *colormap\_conflicts*. This array returns a list of visuals that may cause conflicts in the use of the hardware colormap. For example, if a 12-bit hardware colormap is overloaded to support 8-bit colormaps, the corresponding 8-bit visuals would conflict with the 12-bit visuals.

# [ERRORS](#ERRORS)

**XeviGetVisualInfo** will return *BadValue* if passed an invalid visual ID, *BadAccess* if the X server does not respond, *BadAlloc* if there is a memory allocation failure.

1997-12-24 libXext 1.3.7

---

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