# HG changeset patch # User pacman # Date 1140774779 0 # Node ID f5f338e543b6a3455c95bd03218a3e5f2f79eb81 # Parent cb73482267a0222bd042446e227d9f8af8822b79 Fix rgb32tobgr16, rgb32to15, and rgb32tobgr15. All had the same problem that was fixed in rgb32to16 about a year ago: using only the first 8 bits of the 32-bit pixel. diff -r cb73482267a0 -r f5f338e543b6 postproc/rgb2rgb_template.c --- a/postproc/rgb2rgb_template.c Fri Feb 24 05:41:35 2006 +0000 +++ b/postproc/rgb2rgb_template.c Fri Feb 24 09:52:59 2006 +0000 @@ -468,8 +468,8 @@ #endif while(s < end) { - const int src= *s; s += 4; - *d++ = ((src&0xF8)<<8) + ((src&0xFC00)>>5) + ((src&0xF80000)>>19); + register int rgb = *(uint32_t*)s; s += 4; + *d++ = ((rgb&0xF8)<<8) + ((rgb&0xFC00)>>5) + ((rgb&0xF80000)>>19); } } @@ -564,8 +564,8 @@ #endif while(s < end) { - const int src= *s; s += 4; - *d++ = ((src&0xFF)>>3) + ((src&0xF800)>>6) + ((src&0xF80000)>>9); + register int rgb = *(uint32_t*)s; s += 4; + *d++ = ((rgb&0xFF)>>3) + ((rgb&0xF800)>>6) + ((rgb&0xF80000)>>9); } } @@ -625,8 +625,8 @@ #endif while(s < end) { - const int src= *s; s += 4; - *d++ = ((src&0xF8)<<7) + ((src&0xF800)>>6) + ((src&0xF80000)>>19); + register int rgb = *(uint32_t*)s; s += 4; + *d++ = ((rgb&0xF8)<<7) + ((rgb&0xF800)>>6) + ((rgb&0xF80000)>>19); } }