RGB, readcolmap, writecolmap – access display color map


#include <u.h>
#include <libc.h>
#include <draw.h>

void readcolmap(Display *d, RGB *map)

void writecolmap(Display *d, RGB *map)


Colors are described by their red, green, and blue light intensities, in an RGB datum:


struct RGB {
	ulong red;
	ulong green;
	ulong blue;
} RGB;

Black is represented by zero in all three positions and white has the maximum unsigned long value in all three positions.

A color map is an array of RGBs, of length \x’-.8n’2\s-1depth\s+1, giving the colors for pixels 0, 1, 2, etc. On displays with color mapped pixels (typically 8-bit displays), one retrieves RGB color information by treating the pixel data as an offset into the color map.

Readcolmap reads the color map for the given display into the provided map, which must have enough space to hold it. Writecolmap associates the given color map with the given display, if possible. (The hardware might not allow this.) Both return 0 on success, or –1 on error, setting errstr.

Changing the hardware color map does not change the color map used by the draw(2) operator to convert between mapped and true color or greyscale images, which is described in color(6).




graphics(2), draw(3), color(6)