1
0
Fork 0
forked from len0rd/rockbox

reduce pictureflow's fade_color by one multiply, and a few shifts, while still maintaining reasonable quality

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19770 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Andrew Mahone 2009-01-14 08:15:35 +00:00
parent d7d75b7fd4
commit 6e54d94908

View file

@ -1067,20 +1067,22 @@ void recalc_table(void)
#if (LCD_PIXELFORMAT == RGB565SWAPPED) #if (LCD_PIXELFORMAT == RGB565SWAPPED)
static inline pix_t fade_color(pix_t c, unsigned int a) static inline pix_t fade_color(pix_t c, unsigned int a)
{ {
unsigned int result;
c = swap16(c); c = swap16(c);
unsigned int result=0; a = (a + 2) & 0x1fc;
result |= (((c & 0x1f) * a) >> 8) & 0x1f; result = ((c & 0xf81f) * a) & 0xf81f00;
result |= (((c & 0x7e0) * a) >> 8) & 0x7e0; result |= ((c & 0x7e0) * a) & 0x7e000;
result |= (((c & 0xf800) * a) >> 8) & 0xf800; result >>= 8;
return swap16(result); return swap16(result);
} }
#elif LCD_PIXELFORMAT == RGB565 #elif LCD_PIXELFORMAT == RGB565
static inline pix_t fade_color(pix_t c, unsigned int a) static inline pix_t fade_color(pix_t c, unsigned int a)
{ {
unsigned int result=0; unsigned int result;
result |= (((c & 0x1f) * a) >> 8) & 0x1f; a = (a + 2) & 0x1fc;
result |= (((c & 0x7e0) * a) >> 8) & 0x7e0; result = ((c & 0xf81f) * a) & 0xf81f00;
result |= (((c & 0xf800) * a) >> 8) & 0xf800; result |= ((c & 0x7e0) * a) & 0x7e000;
result >>= 8;
return result; return result;
} }
#else #else