mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
Switch to the new functions.
This commit is contained in:
1 parent
f2b4ad04c6
commit
5b14cf9a3d
2 files changed
+31
-31
No files matched your search
@@ -69,20 +69,23 @@ inline u32 RGBA4444ToRGBA8888(u16 src) {
|
||||
}
|
||||
|
||||
inline u32 RGBA5551ToRGBA8888(u16 src) {
|
||||
u8 r = Convert5To8((src >> 0) & 0x1F);
|
||||
u8 g = Convert5To8((src >> 5) & 0x1F);
|
||||
u8 b = Convert5To8((src >> 10) & 0x1F);
|
||||
u8 a = (src >> 15) & 0x1;
|
||||
a = (a) ? 0xff : 0;
|
||||
return (a << 24) | (b << 16) | (g << 8) | r;
|
||||
u32 dark = ((src & 0x1F) << 3) | ((src & 0x3E0) << 6) | ((src & 0x7C00) << 9);
|
||||
// Replicate the top 3 upper bits into the missing lower bits.
|
||||
u32 full = (dark | (dark >> 5) & 0x070707);
|
||||
if (src >> 15) {
|
||||
full |= 0xFF000000;
|
||||
}
|
||||
return full;
|
||||
}
|
||||
|
||||
inline u32 RGB565ToRGBA8888(u16 src) {
|
||||
u8 r = Convert5To8((src >> 0) & 0x1F);
|
||||
u8 g = Convert6To8((src >> 5) & 0x3F);
|
||||
u8 b = Convert5To8((src >> 11) & 0x1F);
|
||||
u8 a = 0xFF;
|
||||
return (a << 24) | (b << 16) | (g << 8) | r;
|
||||
u32 dark_rb = ((src & 0x1F) << 3) | ((src & 0xF800) << 8);
|
||||
// Replicate the top 3 upper bits into the missing lower bits.
|
||||
u32 full_rb = (dark_rb | (dark_rb >> 5) & 0x070007);
|
||||
// Add in green (6 bits instead of 5).
|
||||
u32 dark_g = ((src & 0x7E0) << 5);
|
||||
u32 full_g = dark_g | ((dark_g >> 6) & 0x300);
|
||||
return full_rb | full_g | 0xFF000000;
|
||||
}
|
||||
|
||||
inline u16 RGBA8888ToRGB565(u32 value) {
|
||||
|
||||
+17
-20
@@ -998,24 +998,21 @@ bool TestIniFile() {
|
||||
return true;
|
||||
}
|
||||
|
||||
inline u32 FastRGBA5551ToRGBA8888(u16 src) {
|
||||
u32 dark = ((src & 0x1F) << 3) | ((src & 0x3E0) << 6) | ((src & 0x7C00) << 9);
|
||||
// Replicate the top 3 upper bits into the missing lower bits.
|
||||
u32 full = (dark | (dark >> 5) & 0x070707);
|
||||
if (src >> 15) {
|
||||
full |= 0xFF000000;
|
||||
}
|
||||
return full;
|
||||
inline u32 ReferenceRGBA5551ToRGBA8888(u16 src) {
|
||||
u8 r = Convert5To8((src >> 0) & 0x1F);
|
||||
u8 g = Convert5To8((src >> 5) & 0x1F);
|
||||
u8 b = Convert5To8((src >> 10) & 0x1F);
|
||||
u8 a = (src >> 15) & 0x1;
|
||||
a = (a) ? 0xff : 0;
|
||||
return (a << 24) | (b << 16) | (g << 8) | r;
|
||||
}
|
||||
|
||||
inline u32 FastRGB565ToRGBA8888(u16 src) {
|
||||
u32 dark_rb = ((src & 0x1F) << 3) | ((src & 0xF800) << 8);
|
||||
// Replicate the top 3 upper bits into the missing lower bits.
|
||||
u32 full_rb = (dark_rb | (dark_rb >> 5) & 0x070007);
|
||||
// Add in green (6 bits instead of 5).
|
||||
u32 dark_g = ((src & 0x7E0) << 5);
|
||||
u32 full_g = dark_g | ((dark_g >> 6) & 0x300);
|
||||
return full_rb | full_g | 0xFF000000;
|
||||
inline u32 ReferenceRGB565ToRGBA8888(u16 src) {
|
||||
u8 r = Convert5To8((src >> 0) & 0x1F);
|
||||
u8 g = Convert6To8((src >> 5) & 0x3F);
|
||||
u8 b = Convert5To8((src >> 11) & 0x1F);
|
||||
u8 a = 0xFF;
|
||||
return (a << 24) | (b << 16) | (g << 8) | r;
|
||||
}
|
||||
|
||||
bool TestColorConv() {
|
||||
@@ -1023,12 +1020,12 @@ bool TestColorConv() {
|
||||
for (int i = 0; i < 65536; i++) {
|
||||
u16 col16 = i;
|
||||
|
||||
u32 reference = RGBA5551ToRGBA8888(col16);
|
||||
u32 value = FastRGBA5551ToRGBA8888(col16);
|
||||
u32 reference = ReferenceRGBA5551ToRGBA8888(col16);
|
||||
u32 value = RGBA5551ToRGBA8888(col16);
|
||||
EXPECT_EQ_INT(reference, value);
|
||||
|
||||
reference = RGB565ToRGBA8888(col16);
|
||||
value = FastRGB565ToRGBA8888(col16);
|
||||
reference = ReferenceRGB565ToRGBA8888(col16);
|
||||
value = RGB565ToRGBA8888(col16);
|
||||
EXPECT_EQ_INT(reference, value);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user