Changeset 240


Ignore:
Timestamp:
Nov 30, 2003, 5:34:04 PM (18 years ago)
Author:
Sam Hocevar
Message:
  • src/io.c: + Removed a useless message.
  • src/bitmap.c examples/view.c: + Really fixed the endianness issue.
Location:
libcaca/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/examples/view.c

    r238 r240  
    6262#endif
    6363    {
     64        rmask = 0x0000ff00; gmask = 0x00ff0000; bmask = 0xff000000;
     65    }
     66    else
     67    {
    6468        rmask = 0x00ff0000; gmask = 0x0000ff00; bmask = 0x000000ff;
    65     }
    66     else
    67     {
    68         rmask = 0x0000ff00; gmask = 0x00ff0000; bmask = 0xff000000;
    6969    }
    7070
  • libcaca/trunk/src/bitmap.c

    r239 r240  
    3838#endif
    3939
     40#ifdef HAVE_ENDIAN_H
     41#   include <endian.h>
     42#endif
     43
    4044#include <stdlib.h>
    4145
     
    237241                            unsigned int *g, unsigned int *b)
    238242{
    239     unsigned int bits;
     243    uint32_t bits;
    240244
    241245    pixels += (bitmap->bpp / 8) * x + bitmap->pitch * y;
     
    244248    {
    245249        case 4:
    246             bits = ((uint32_t)pixels[0] << 24) |
    247                    ((uint32_t)pixels[1] << 16) |
    248                    ((uint32_t)pixels[2] << 8) |
    249                    ((uint32_t)pixels[3]);
     250            bits = *(uint32_t *)pixels;
    250251            break;
    251252        case 3:
    252             bits = ((uint32_t)pixels[0] << 16) |
    253                    ((uint32_t)pixels[1] << 8) |
    254                    ((uint32_t)pixels[2]);
     253        {
     254#ifdef HAVE_ENDIAN_H
     255            if(__BYTE_ORDER == __BIG_ENDIAN)
     256#else
     257            static const uint32_t rmask = 0x12345678;
     258            if(*(uint8_t *)&rmask == 0x12)
     259#endif
     260                bits = ((uint32_t)pixels[0] << 16) |
     261                       ((uint32_t)pixels[1] << 8) |
     262                       ((uint32_t)pixels[2]);
     263            else
     264                bits = ((uint32_t)pixels[2] << 16) |
     265                       ((uint32_t)pixels[1] << 8) |
     266                       ((uint32_t)pixels[0]);
    255267            break;
     268        }
    256269        case 2:
    257             bits = ((uint16_t)pixels[0] << 8) |
    258                    ((uint16_t)pixels[1]);
     270            bits = *(uint16_t *)pixels;
    259271            break;
    260272        case 1:
  • libcaca/trunk/src/io.c

    r213 r240  
    171171    }
    172172
    173 caca_printf(0,0, "unknown esc sequence %2x %2x %2x %2x %2x\n", '\x1b', keybuf[0], keybuf[1], keybuf[2], keybuf[3]);
    174173    /* Unknown escape sequence: return the ESC key */
    175174    return CACA_EVENT_KEY_PRESS | '\x1b';
Note: See TracChangeset for help on using the changeset viewer.