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

# XcmsAllocColor(3)

allocate colors

## NAME

XcmsAllocColor, XcmsAllocNamedColor - allocate colors

## SYNTAX

Status XcmsAllocColor(Display \**display*, Colormap *colormap*, XcmsColor \**color\_in\_out*, XcmsColorFormat *result\_format*);

Status XcmsAllocNamedColor(Display \**display*, Colormap *colormap*, \_Xconst char \**color\_string*, XcmsColor \**color\_screen\_return*, XcmsColor \**color\_exact\_return*, XcmsColorFormat *result\_format*);

## ARGUMENTS

- *display*

  Specifies the connection to the X server.

- *colormap*

  Specifies the colormap.

- *color\_exact\_return*

  Returns the color specification parsed from the color string or parsed from the corresponding string found in a color-name database.

- *color\_in\_out*

  Specifies the color to allocate and returns the pixel and color that is actually used in the colormap.

- *color\_screen\_return*

  Returns the pixel value of the color cell and color specification that actually is stored for that cell. Specifies the color string whose color definition structure is to be returned.

- *result\_format*

  Specifies the color format for the returned color specification.

## DESCRIPTION

The **XcmsAllocColor** function is similar to **XAllocColor** except the color can be specified in any format. The **XcmsAllocColor** function ultimately calls **XAllocColor** to allocate a read-only color cell (colormap entry) with the specified color. **XcmsAllocColor** first converts the color specified to an RGB value and then passes this to **XAllocColor**. **XcmsAllocColor** returns the pixel value of the color cell and the color specification actually allocated. This returned color specification is the result of converting the RGB value returned by **XAllocColor** into the format specified with the result\_format argument. If there is no interest in a returned color specification, unnecessary computation can be bypassed if result\_format is set to **XcmsRGBFormat**. The corresponding colormap cell is read-only. If this routine returns **XcmsFailure**, the color\_in\_out color specification is left unchanged.

**XcmsAllocColor** can generate a **BadColor** errors.

The **XcmsAllocNamedColor** function is similar to **XAllocNamedColor** except that the color returned can be in any format specified. This function ultimately calls **XAllocColor** to allocate a read-only color cell with the color specified by a color string. The color string is parsed into an **XcmsColor** structure (see **XcmsLookupColor**), converted to an RGB value, and finally passed to **XAllocColor**. If the color name is not in the Host Portable Character Encoding, the result is implementation-dependent. Use of uppercase or lowercase does not matter.

This function returns both the color specification as a result of parsing (exact specification) and the actual color specification stored (screen specification). This screen specification is the result of converting the RGB value returned by **XAllocColor** into the format specified in result\_format. If there is no interest in a returned color specification, unnecessary computation can be bypassed if result\_format is set to **XcmsRGBFormat**. If color\_screen\_return and color\_exact\_return point to the same structure, the pixel field will be set correctly, but the color values are undefined.

**XcmsAllocNamedColor** can generate a **BadColor** errors.

## DIAGNOSTICS

- **BadColor**

  A value for a Colormap argument does not name a defined Colormap.

## SEE ALSO

[**XcmsQueryColor**(3)](/XcmsQueryColor/3.md), [**XcmsStoreColor**(3)](/XcmsStoreColor/3.md)\
 *Xlib - C Language X Interface*
