From 97525d94d704b809ccd5187625ed78a142ea3b3e Mon Sep 17 00:00:00 2001 From: rogerman Date: Fri, 20 Oct 2017 13:03:03 -0700 Subject: [PATCH] Colorspace Handler: Properly maintain the alpha value when applying intensity to an RGBA5551 color buffer. --- .../colorspacehandler/colorspacehandler.cpp | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/desmume/src/utils/colorspacehandler/colorspacehandler.cpp b/desmume/src/utils/colorspacehandler/colorspacehandler.cpp index 091df2454..c4720d5c1 100755 --- a/desmume/src/utils/colorspacehandler/colorspacehandler.cpp +++ b/desmume/src/utils/colorspacehandler/colorspacehandler.cpp @@ -639,10 +639,10 @@ void ColorspaceApplyIntensityToBuffer16(u16 *dst, size_t pixCount, float intensi { u16 outColor = (SWAP_RB) ? COLOR5551_SWAP_RB(dst[i]) : dst[i]; - u8 r = (u8)( (((outColor >> 0) & 0x1F) * intensity_u16) >> 16 ); - u8 g = (u8)( (((outColor >> 5) & 0x1F) * intensity_u16) >> 16 ); - u8 b = (u8)( (((outColor >> 10) & 0x1F) * intensity_u16) >> 16 ); - u8 a = outColor & 0x8000; + u8 r = (u8)( (((outColor >> 0) & 0x1F) * intensity_u16) >> 16 ); + u8 g = (u8)( (((outColor >> 5) & 0x1F) * intensity_u16) >> 16 ); + u8 b = (u8)( (((outColor >> 10) & 0x1F) * intensity_u16) >> 16 ); + u16 a = outColor & 0x8000; dst[i] = ( (r << 0) | (g << 5) | (b << 10) | a ); } @@ -1050,10 +1050,10 @@ size_t ColorspaceHandler::ApplyIntensityToBuffer16(u16 *dst, size_t pixCount, fl { u16 outColor = dst[i]; - u8 r = (u8)( (((outColor >> 0) & 0x1F) * intensity_u16) >> 16 ); - u8 g = (u8)( (((outColor >> 5) & 0x1F) * intensity_u16) >> 16 ); - u8 b = (u8)( (((outColor >> 10) & 0x1F) * intensity_u16) >> 16 ); - u8 a = outColor & 0x8000; + u8 r = (u8)( (((outColor >> 0) & 0x1F) * intensity_u16) >> 16 ); + u8 g = (u8)( (((outColor >> 5) & 0x1F) * intensity_u16) >> 16 ); + u8 b = (u8)( (((outColor >> 10) & 0x1F) * intensity_u16) >> 16 ); + u16 a = outColor & 0x8000; dst[i] = ( (r << 0) | (g << 5) | (b << 10) | a ); } @@ -1090,10 +1090,10 @@ size_t ColorspaceHandler::ApplyIntensityToBuffer16_SwapRB(u16 *dst, size_t pixCo { u16 outColor = COLOR5551_SWAP_RB(dst[i]); - u8 r = (u8)( (((outColor >> 0) & 0x1F) * intensity_u16) >> 16 ); - u8 g = (u8)( (((outColor >> 5) & 0x1F) * intensity_u16) >> 16 ); - u8 b = (u8)( (((outColor >> 10) & 0x1F) * intensity_u16) >> 16 ); - u8 a = outColor & 0x8000; + u8 r = (u8)( (((outColor >> 0) & 0x1F) * intensity_u16) >> 16 ); + u8 g = (u8)( (((outColor >> 5) & 0x1F) * intensity_u16) >> 16 ); + u8 b = (u8)( (((outColor >> 10) & 0x1F) * intensity_u16) >> 16 ); + u16 a = outColor & 0x8000; dst[i] = ( (r << 0) | (g << 5) | (b << 10) | a ); }