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)
|
#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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue