7.10 Creating and Installing Colormaps
In discussing colormaps earlier in this chapter, we mentioned that there are hardware colormaps and virtual colormaps, but we did not discuss the ramifications of this fact.
A hardware colormap is a physical register from which the screen hardware reads the RGB intensity values that generate the colors on the screen. Most workstations have only one hardware colormap, in which case all windows on the screen are interpreted using the same colormap. Some high performance workstations have multiple hardware colormaps, in which case separate windows may have their own independent hardware colormaps.
If the hardware colormap cannot be changed, it is termed
immutable. Monochrome systems normally have an
immutable colormap, since it does little good to swap the two entries or
make them both black or white. Some low-cost color systems and some X
terminals have immutable hardware colormaps. The
StaticColor, StaticGray, and
TrueColor visuals are the only visuals that can
possibly work on systems that have immutable hardware colormaps. In
immutable colormaps, no client can allocate private colorcells and all
RGB values are preset. On these systems,
XCreateColormap() succeeds, but it just gives you
another copy of the default colormap (or one of the default colormaps if
there are multiple immutable colormaps). The application should check
for this when creating colormaps.
On most color workstations, you can write new values into the hardware colormap or colormaps ...