magic/doc/textfiles/hires-color.txt

53 lines
2.1 KiB
Plaintext

3 February 1997
A More Colorful Magic
Michael D. Godfrey
This file describes the implementation of color visuals > 8bits.
The purposes of these changes are:
1. Try to select the "best" visual on systems which offer choices.
The current Magic just takes the default, and crashes if the
color depth is greater than 8.
2. Support operation using TrueColor at 16 or 24 bits (and maybe 15
bits, thanks to Linux over-zealous implementation).
The changes require X11R5 or above. I do not know what will happen
if older X11's are used, but it is not likely to be useful. All
changes are in the files graphics/grX11su1.c, grX11su2.c, and
grX11su5.c. Most of the changes are in grX11su2.c.
The changes are:
1. Call XGetVisualInfo() to find out what visuals the X-server has
to offer.
2. Look at the optional environment variable MAGIC_COLOR. If it is
present try to use the requested visual. Valid requests are:
setenv MAGIC_COLOR <8bit | 16bit | 24bit>. If the requested
visual is not offered Magic terminates. If there was no
MAGIC_COLOR variable try: 8bit PseudoColor, 24bit TrueColor, 16bit
TrueColor in that order.
3. If 8bit PseudoColor was selected, the code is unchanged and the
file mos.7bit.dstyle5 is read from CAD_ROOT. If TrueColor is
selected, the generation of pixel values and masks is fundamentally
changed since TrueColor does not allow writable colormaps. The
intent is to produce the same RGB color values, but no "transparent"
colors are possible. Therefore, a new file: mos.24bit.dstlye5 is
read. This file has M1 and M2 stippled, and the selection box made
non-transparent.
Further change in version 7.1:
4. Because some X servers, like PC-XWare for Windows, reserve spots
at the bottom of the colormap rather than the top, it is necessary
to let these values be set at runtime. We allow two environment
variables, X_COLORMAP_RESERVED and X_COLORMAP_BASE, for the
purpose of overriding the default values set in graphics/grX11su2.c.