# HG changeset patch # User lu_zero # Date 1170002201 0 # Node ID cac6e3b0d2e5a9cd4cb39cdda801a229f936ef3a # Parent 8f9d757af58edc5685a3ef94c3b3cf8ebf359ed2 fix endianess, see bug #727 diff -r 8f9d757af58e -r cac6e3b0d2e5 libvo/vo_tga.c --- a/libvo/vo_tga.c Sun Jan 28 14:48:14 2007 +0000 +++ b/libvo/vo_tga.c Sun Jan 28 16:36:41 2007 +0000 @@ -37,14 +37,6 @@ #include "video_out.h" #include "video_out_internal.h" -#ifdef WORDS_BIGENDIAN -#define TGA_ALPHA32 0x000000ff -#define TGA_SHIFT32 8 -#else -#define TGA_ALPHA32 0xff000000 -#define TGA_SHIFT32 0 -#endif - static vo_info_t info = { "Targa output", @@ -121,14 +113,26 @@ if (bpp == 32) { /* Setup the alpha channel for every pixel */ while (dy-- > 0) { - uint32_t *d; - uint32_t *s; + uint8_t *d; + uint8_t *s; int x; - s = (uint32_t *)buf; + s = buf; d = line_buff; for(x = 0; x < dx; x++) { - *d++ = ((*s++) << TGA_SHIFT32) | TGA_ALPHA32; + #ifdef WORDS_BIGENDIAN + d[0] = s[3]; + d[1] = s[2]; + d[2] = s[1]; + d[3] = 0xff; + #else + d[0] = 0xff; + d[1] = s[1]; + d[2] = s[2]; + d[3] = s[3]; + #endif + d+=4; + s+=4; } if (fwrite(line_buff, wb, 1, fo) != 1) { er = 4;