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:
parent
d7d75b7fd4
commit
6e54d94908
1 changed files with 10 additions and 8 deletions
|
@ -1067,20 +1067,22 @@ void recalc_table(void)
|
|||
#if (LCD_PIXELFORMAT == RGB565SWAPPED)
|
||||
static inline pix_t fade_color(pix_t c, unsigned int a)
|
||||
{
|
||||
unsigned int result;
|
||||
c = swap16(c);
|
||||
unsigned int result=0;
|
||||
result |= (((c & 0x1f) * a) >> 8) & 0x1f;
|
||||
result |= (((c & 0x7e0) * a) >> 8) & 0x7e0;
|
||||
result |= (((c & 0xf800) * a) >> 8) & 0xf800;
|
||||
a = (a + 2) & 0x1fc;
|
||||
result = ((c & 0xf81f) * a) & 0xf81f00;
|
||||
result |= ((c & 0x7e0) * a) & 0x7e000;
|
||||
result >>= 8;
|
||||
return swap16(result);
|
||||
}
|
||||
#elif LCD_PIXELFORMAT == RGB565
|
||||
static inline pix_t fade_color(pix_t c, unsigned int a)
|
||||
{
|
||||
unsigned int result=0;
|
||||
result |= (((c & 0x1f) * a) >> 8) & 0x1f;
|
||||
result |= (((c & 0x7e0) * a) >> 8) & 0x7e0;
|
||||
result |= (((c & 0xf800) * a) >> 8) & 0xf800;
|
||||
unsigned int result;
|
||||
a = (a + 2) & 0x1fc;
|
||||
result = ((c & 0xf81f) * a) & 0xf81f00;
|
||||
result |= ((c & 0x7e0) * a) & 0x7e000;
|
||||
result >>= 8;
|
||||
return result;
|
||||
}
|
||||
#else
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue