Optimize a couple more single color conversion functions

This commit is contained in:
Henrik Rydgård 2020-09-02 00:25:44 +02:00
parent 60a6bf6d43
commit f595f7368f

View File

@ -66,21 +66,18 @@ inline u32 RGB565ToRGBA8888(u16 src) {
}
inline u16 RGBA8888ToRGB565(u32 value) {
u8 r = value & 0xFF;
u8 g = (value >> 8) & 0xFF;
u8 b = (value >> 16) & 0xFF;
r >>= 3;
g >>= 2;
b >>= 3;
return (u16)r | ((u16)g << 5) | ((u16)b << 11);
u32 r = (value >> 3) & 0x1F;
u32 g = (value >> 5) & (0x3F << 5);
u32 b = (value >> 8) & (0x1F << 11);
return (u16)(r | g | b);
}
inline u16 RGBA8888ToRGBA5551(u32 value) {
u32 r = (value >> 3) & 0x1F;
u32 g = (value >> 11) & 0x1F;
u32 b = (value >> 19) & 0x1F;
u32 a = (value >> 31) & 0x1;
return (u16)(r | (g << 5) | (b << 10) | (a << 15));
u32 g = (value >> 6) & (0x1F << 5);
u32 b = (value >> 9) & (0x1F << 10);
u32 a = (value >> 16) & 0x8000;
return (u16)(r | g | b | a);
}
inline u16 RGBA8888ToRGBA4444(u32 value) {