Ignore:
Timestamp:
Apr 19, 2006, 1:50:24 PM (14 years ago)
Author:
Sam Hocevar
Message:
  • Moved the technical discussion on S-Lang's palette optimisation from NOTES to tools/optipal.c.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/tools/optipal.c

    r742 r820  
    8989
    9090/*
    91  * XXX: See the NOTES file for what follows
     91 *  256 character pairs are definable, but only 128 can be used. This is
     92 *  because slsmg.c's This_Color variable uses its 8th bit to indicate an
     93 *  alternate character set. Replacing a few 0x7F with 0xFF in sldisply.c
     94 *  works around the problem but gets rid of the alternate charset.
     95 *
     96 *  We can work around this problem. See this usage grid:
     97 *
     98 *                  bg                         1 1 1 1 1 1
     99 *    fg                  0 1 2 3 4 5 6 7  8 9 0 1 2 3 4 5
     100 *
     101 *    0 (black)             C C C C C C F  B c c c c c c F
     102 *    1 (blue)            A   h D h D i f  C C h E h E k g
     103 *    2 (green)           A h   D h i D f  C h C E h k E g
     104 *    3 (cyan)            A D D   i h h f  C E E C k h h g
     105 *    4 (red)             A h h i   D D f  C h h k C E E g
     106 *    5 (magenta)         A D i h D   h f  C E k h E C h g
     107 *    6 (brown)           A i D h D h   f  C k E h E h C g
     108 *    7 (light gray)      A F a a a a a    B C C C C C C B
     109 *
     110 *    8 (dark gray)       A C C C C C C B    d d d d d d F
     111 *    9 (light blue)      A C h E h E j C  e   h D h D l C
     112 *    10 (light green)    A h C E h j E C  e h   D h l D C
     113 *    11 (light cyan)     A E E C j h h C  e D D   l h h C
     114 *    12 (light red)      A h h j C E E C  e h h l   D D C
     115 *    13 (light magenta)  A E j h E C h C  e D l h D   h C
     116 *    14 (yellow)         A j E h E h C C  e l D h D h   C
     117 *    15 (white)          A F b b b b b B  F C C C C C C
     118 *
     119 *  ' ': useless colour pairs that can be emulated by printing a space in
     120 *       any other colour pair that has the same background
     121 *  'A': black background colour pairs that are needed for the old renderer
     122 *  'B': gray combinations used for grayscale dithering
     123 *  'C': white/light, light/dark, lightgray/light, darkgray/dark, dark/black
     124 *       combinations often used for saturation/value dithering (the two
     125 *       other possible combinations, lightgray/dark and darkgray/light, are
     126 *       not considered here)
     127 *  'D': next colour combinations for hue dithering (magenta/blue, blue/green
     128 *       and so on)
     129 *  'E': next colour combinations for hue/value dithering (blue/lightgreen,
     130 *       green/lightblue and so on)
     131 *  'F': black on light gray, black on white, white on dark gray, dark gray
     132 *       on white, white on blue, light gray on blue (chosen arbitrarily)
     133 *
     134 *  'A': 15 colour pairs
     135 *  'A'+'B': 20 colour pairs
     136 *  'A'+'B'+'C': 74 colour pairs
     137 *  'A'+'B'+'C'+'D': 98 colour pairs
     138 *  'A'+'B'+'C'+'D'+'E': 122 colour pairs
     139 *  'A'+'B'+'C'+'D'+'E'+'F': 128 colour pairs
     140 *
     141 *  The remaining slightly important colour pairs are:
     142 *
     143 *  'a': light gray on dark colour: emulate with light colour on dark colour
     144 *  'b': white on dark colour: emulate with light gray on light colour
     145 *  'c': black on light colour: emulate with dark gray on dark colour
     146 *  'd': dark gray on light colour: emulate with dark colour on light colour
     147 *  'e': light colour on dark gray: emulate with dark colour on dark gray
     148 *  'f': dark colour on light gray: emulate with light colour on light gray
     149 *  'g': dark colour on white: emulate with light colour on white
     150 *
     151 *  And now the seldom used pairs:
     152 *
     153 *  'h': 120 degree hue pairs can be emulated as well; for instance blue on
     154 *       red can be emulated using magenta on red, and blue on green using
     155 *       cyan on green
     156 *
     157 *  And the almost never used pairs:
     158 *
     159 *  'i': dark opposite on dark: emulate with dark opposite on black
     160 *  'j': light opposite on dark: emulate with light opposite on black
     161 *  'k': dark opposite on light: emulate with black on dark
     162 *  'l': light opposite on light: emulate with white on light
    92163 */
    93164
Note: See TracChangeset for help on using the changeset viewer.