Changeset 820


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

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/NOTES

    r343 r820  
    116116       doesn't work on konsole
    117117
    118    o  S-Lang:
    119 
    120       256 character pairs are definable, but only 128 can be used. This is
    121       because slsmg.c's This_Color variable uses its 8th bit to indicate an
    122       alternate character set. Replacing a few 0x7F with 0xFF in sldisply.c
    123       works around the problem but gets rid of the alternate charset.
    124 
    125       We can work around this problem. See this usage grid:
    126 
    127                       bg                         1 1 1 1 1 1
    128         fg                  0 1 2 3 4 5 6 7  8 9 0 1 2 3 4 5
    129 
    130         0 (black)             C C C C C C F  B c c c c c c F
    131         1 (blue)            A   h D h D i f  C C h E h E k g
    132         2 (green)           A h   D h i D f  C h C E h k E g
    133         3 (cyan)            A D D   i h h f  C E E C k h h g
    134         4 (red)             A h h i   D D f  C h h k C E E g
    135         5 (magenta)         A D i h D   h f  C E k h E C h g
    136         6 (brown)           A i D h D h   f  C k E h E h C g
    137         7 (light gray)      A F a a a a a    B C C C C C C B
    138 
    139         8 (dark gray)       A C C C C C C B    d d d d d d F
    140         9 (light blue)      A C h E h E j C  e   h D h D l C
    141         10 (light green)    A h C E h j E C  e h   D h l D C
    142         11 (light cyan)     A E E C j h h C  e D D   l h h C
    143         12 (light red)      A h h j C E E C  e h h l   D D C
    144         13 (light magenta)  A E j h E C h C  e D l h D   h C
    145         14 (yellow)         A j E h E h C C  e l D h D h   C
    146         15 (white)          A F b b b b b B  F C C C C C C 
    147 
    148       ' ': useless colour pairs that can be emulated by printing a space in
    149            any other colour pair that has the same background
    150       'A': black background colour pairs that are needed for the old renderer
    151       'B': gray combinations used for grayscale dithering
    152       'C': white/light, light/dark, lightgray/light, darkgray/dark, dark/black
    153            combinations often used for saturation/value dithering (the two
    154            other possible combinations, lightgray/dark and darkgray/light, are
    155            not considered here)
    156       'D': next colour combinations for hue dithering (magenta/blue, blue/green
    157            and so on)
    158       'E': next colour combinations for hue/value dithering (blue/lightgreen,
    159            green/lightblue and so on)
    160       'F': black on light gray, black on white, white on dark gray, dark gray
    161            on white, white on blue, light gray on blue (chosen arbitrarily)
    162 
    163       'A': 15 colour pairs
    164       'A'+'B': 20 colour pairs
    165       'A'+'B'+'C': 74 colour pairs
    166       'A'+'B'+'C'+'D': 98 colour pairs
    167       'A'+'B'+'C'+'D'+'E': 122 colour pairs
    168       'A'+'B'+'C'+'D'+'E'+'F': 128 colour pairs
    169 
    170       The remaining slightly important colour pairs are:
    171 
    172       'a': light gray on dark colour: emulate with light colour on dark colour
    173       'b': white on dark colour: emulate with light gray on light colour
    174       'c': black on light colour: emulate with dark gray on dark colour
    175       'd': dark gray on light colour: emulate with dark colour on light colour
    176       'e': light colour on dark gray: emulate with dark colour on dark gray
    177       'f': dark colour on light gray: emulate with light colour on light gray
    178       'g': dark colour on white: emulate with light colour on white
    179 
    180       And now the seldom used pairs:
    181 
    182       'h': 120 degree hue pairs can be emulated as well; for instance blue on
    183            red can be emulated using magenta on red, and blue on green using
    184            cyan on green
    185 
    186       And the almost never used pairs:
    187 
    188       'i': dark opposite on dark: emulate with dark opposite on black
    189       'j': light opposite on dark: emulate with light opposite on black
    190       'k': dark opposite on light: emulate with black on dark
    191       'l': light opposite on light: emulate with white on light
    192 
    193118   o  MS-DOS: all bright colours, bright backgrounds, and bright combinations
    194119      work using <conio.h>. No need to kludge anything.
  • 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.