Changeset 1332


Ignore:
Timestamp:
Nov 11, 2006, 9:44:14 AM (13 years ago)
Author:
Sam Hocevar
Message:
  • Get rid of _cucul_attr_to_ansi4[fb]g() and replace all calls with the now official cucul_attr_to_ansi_[fb]g().
Location:
libcaca/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/caca/driver_slang.c

    r1257 r1332  
    218218             * bright backgrounds, it's just fucked up. */
    219219#if 0
    220             uint8_t fgcolor = _cucul_attr_to_ansi4fg(*attrs);
    221             uint8_t bgcolor = _cucul_attr_to_ansi4bg(*attrs);
     220            uint8_t fgcolor = cucul_attr_to_ansi_fg(*attrs);
     221            uint8_t bgcolor = cucul_attr_to_ansi_bg(*attrs);
     222
     223            if(fgcolor >= 0x10)
     224                fgcolor = CUCUL_LIGHTGRAY;
     225
     226            if(bgcolor >= 0x10)
     227                bgcolor = CUCUL_BLACK; /* FIXME: handle transparency */
    222228
    223229            if(fgcolor == bgcolor)
  • libcaca/trunk/caca/driver_win32.c

    r1254 r1332  
    199199    {
    200200        uint32_t ch = *chars++;
     201        uint8_t fg = cucul_attr_to_ansi_fg(*attrs);
     202        uint8_t bg = cucul_attr_to_ansi_bg(*attrs);
    201203
    202204#if 0
     
    214216#endif
    215217
    216         buffer->Attributes =
    217                 win32_fg_palette[_cucul_attr_to_ansi4fg(*attrs)]
    218                  | win32_bg_palette[_cucul_attr_to_ansi4bg(*attrs)];
     218        buffer->Attributes = win32_fg_palette[fg < 0x10 ? fg : CUCUL_LIGHTGRAY]
     219                              | win32_bg_palette[bg < 0x10 ? bg : CUCUL_BLACK];
    219220        attrs++;
    220221        buffer++;
  • libcaca/trunk/cucul/attr.c

    r1331 r1332  
    351351}
    352352
    353 uint8_t _cucul_attr_to_ansi4fg(uint32_t attr)
    354 {
    355     uint8_t c = nearest_ansi((attr >> 4) & 0x3fff);
    356 
    357     if(c == CUCUL_DEFAULT || c == CUCUL_TRANSPARENT)
    358         return CUCUL_LIGHTGRAY;
    359 
    360     return c;
    361 }
    362 
    363 uint8_t _cucul_attr_to_ansi4bg(uint32_t attr)
    364 {
    365     uint8_t c = nearest_ansi(attr >> 18);
    366 
    367     if(c == CUCUL_DEFAULT || c == CUCUL_TRANSPARENT)
    368         return CUCUL_BLACK;
    369 
    370     return c;
    371 }
    372 
    373353uint16_t _cucul_attr_to_rgb12fg(uint32_t attr)
    374354{
  • libcaca/trunk/cucul/export.c

    r1306 r1332  
    289289            uint32_t attr = lineattr[x];
    290290            uint32_t ch = linechar[x];
    291             uint8_t fg, bg;
     291            uint8_t ansifg, ansibg, fg, bg;
    292292
    293293            if(ch == CUCUL_MAGIC_FULLWIDTH)
    294294                continue;
    295295
    296             fg = (((attr >> 4) & 0x3fff) == (CUCUL_DEFAULT | 0x40)) ?
    297                      0x10 : palette[_cucul_attr_to_ansi4fg(attr)];
    298             bg = (((attr >> 18) & 0x3fff) == (CUCUL_TRANSPARENT | 0x40)) ?
    299                      0x10 : palette[_cucul_attr_to_ansi4bg(attr)];
     296            ansifg = cucul_attr_to_ansi_fg(attr);
     297            ansibg = cucul_attr_to_ansi_bg(attr);
     298
     299            fg = ansifg < 0x10 ? palette[ansifg] : 0x10;
     300            bg = ansibg < 0x10 ? palette[ansibg] : 0x10;
    300301
    301302            /* TODO: the [0 could be omitted in some cases */
     
    364365        for(x = 0; x < cv->width; x++)
    365366        {
    366             uint8_t fg = palette[_cucul_attr_to_ansi4fg(lineattr[x])];
    367             uint8_t bg = palette[_cucul_attr_to_ansi4bg(lineattr[x])];
     367            uint8_t ansifg = cucul_attr_to_ansi_fg(lineattr[x]);
     368            uint8_t ansibg = cucul_attr_to_ansi_bg(lineattr[x]);
     369            uint8_t fg = ansifg < 0x10 ? palette[ansifg] : CUCUL_LIGHTGRAY;
     370            uint8_t bg = ansibg < 0x10 ? palette[ansibg] : CUCUL_BLACK;
    368371            uint32_t ch = linechar[x];
    369372
     
    615618        {
    616619            uint32_t attr = lineattr[x];
    617             uint8_t fg = palette[_cucul_attr_to_ansi4fg(attr)];
    618             uint8_t bg = palette[_cucul_attr_to_ansi4bg(attr)];
    619620            uint32_t ch = linechar[x];
     621            uint8_t ansifg, ansibg, fg, bg;
    620622
    621623            if(ch == CUCUL_MAGIC_FULLWIDTH)
    622624                continue;
    623625
    624             if(((attr >> 4) & 0x3fff) == (CUCUL_DEFAULT | 0x40))
    625                 fg = 0x10;
    626 
    627             if(((attr >> 18) & 0x3fff) == (CUCUL_TRANSPARENT | 0x40))
    628                 bg = 0x10;
     626            ansifg = cucul_attr_to_ansi_fg(attr);
     627            ansibg = cucul_attr_to_ansi_bg(attr);
     628
     629            fg = ansifg < 0x10 ? palette[ansifg] : 0x10;
     630            bg = ansibg < 0x10 ? palette[ansibg] : 0x10;
    629631
    630632            /* TODO: optimise series of same fg / same bg
Note: See TracChangeset for help on using the changeset viewer.