---
name: "xcb_alloc_color"
section: "3"
platform: "linux"
package: "libxcb"
version: "1.17.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/xcb_alloc_color"
---

# xcb\_alloc\_color(3)

Allocate a color

## NAME

xcb\_alloc\_color - Allocate a color

## SYNOPSIS

**#include \<xcb/xproto.h\>**

### Request function

xcb\_alloc\_color\_cookie\_t **xcb\_alloc\_color**(xcb\_connection\_t \**conn*, xcb\_colormap\_t *cmap*, uint16\_t *red*, uint16\_t *green*, uint16\_t *blue*);

### Reply datastructure

```

typedef struct xcb_alloc_color_reply_t {
    uint8_t  response_type;
    uint8_t  pad0;
    uint16_t sequence;
    uint32_t length;
    uint16_t red;
    uint16_t green;
    uint16_t blue;
    uint8_t  pad1[2];
    uint32_t pixel;
} xcb_alloc_color_reply_t;
```

### Reply function

xcb\_alloc\_color\_reply\_t \***xcb\_alloc\_color\_reply**(xcb\_connection\_t \**conn*, xcb\_alloc\_color\_cookie\_t *cookie*, xcb\_generic\_error\_t \*\**e*);\

## REQUEST ARGUMENTS

- *conn*

  The XCB connection to X11.

- *cmap*

  TODO

- *red*

  The red value of your color.

- *green*

  The green value of your color.

- *blue*

  The blue value of your color.

## REPLY FIELDS

- *response\_type*

  The type of this reply, in this case *XCB\_ALLOC\_COLOR*. This field is also present in the *xcb\_generic\_reply\_t* and can be used to tell replies apart from each other.

- *sequence*

  The sequence number of the last request processed by the X11 server.

- *length*

  The length of the reply, in words (a word is 4 bytes).

- *red*

  TODO: NOT YET DOCUMENTED.

- *green*

  TODO: NOT YET DOCUMENTED.

- *blue*

  TODO: NOT YET DOCUMENTED.

- *pixel*

  TODO: NOT YET DOCUMENTED.

## DESCRIPTION

Allocates a read-only colormap entry corresponding to the closest RGB value supported by the hardware. If you are using TrueColor, you can take a shortcut and directly calculate the color pixel value to avoid the round trip. But, for example, on 16-bit color setups (VNC), you can easily get the closest supported RGB value to the RGB value you are specifying.

## RETURN VALUE

Returns an *xcb\_alloc\_color\_cookie\_t*. Errors have to be handled when calling the reply function *xcb\_alloc\_color\_reply*.

If you want to handle errors in the event loop instead, use *xcb\_alloc\_color\_unchecked*. See **[xcb-requests(3)](/xcb-requests/3.md)** for details.

## ERRORS

- *xcb\_colormap\_error\_t*

  The specified colormap *cmap* does not exist.

## SEE ALSO

[**xcb-requests**(3)](/xcb-requests/3.md)

## AUTHOR

Generated from xproto.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.
