vcl/source/gdi/bmpacc2.cxx |   23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

New commits:
commit 7c06f84cdb2267068fba7c7e193f882cbe0b096f
Author:     Michael Meeks <michael.me...@collabora.com>
AuthorDate: Wed Jan 19 11:37:17 2022 +0000
Commit:     Michael Meeks <michael.me...@collabora.com>
CommitDate: Fri Jan 28 11:11:27 2022 +0100

    vcl: move Alpha through BitmapColor for various 32bit formats.
    
    Change-Id: I891d263a3e7fff728a9118ac436164d4544c65ba
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128607
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Dennis Francis <dennis.fran...@collabora.com>
    Reviewed-by: Luboš Luňák <l.lu...@collabora.com>

diff --git a/vcl/source/gdi/bmpacc2.cxx b/vcl/source/gdi/bmpacc2.cxx
index 64dadadd5f8f..b9097c399b7f 100644
--- a/vcl/source/gdi/bmpacc2.cxx
+++ b/vcl/source/gdi/bmpacc2.cxx
@@ -19,7 +19,6 @@
 
 #include <vcl/bitmapaccess.hxx>
 #include <vcl/BitmapTools.hxx>
-#include <comphelper/lok.hxx>
 
 BitmapColor BitmapReadAccess::GetPixelForN1BitMsbPal(ConstScanline pScanline, 
tools::Long nX, const ColorMask&)
 {
@@ -163,7 +162,8 @@ BitmapColor 
BitmapReadAccess::GetPixelForN32BitTcXbgr(ConstScanline pScanline, t
 {
     BitmapColor aBitmapColor;
 
-    pScanline = pScanline + ( nX << 2 ) + 1;
+    pScanline = pScanline + ( nX << 2 );
+    aBitmapColor.SetAlpha( 0xFF - *pScanline++ );
     aBitmapColor.SetBlue( *pScanline++ );
     aBitmapColor.SetGreen( *pScanline++ );
     aBitmapColor.SetRed( *pScanline );
@@ -185,7 +185,7 @@ void BitmapReadAccess::SetPixelForN32BitTcAbgr(Scanline 
pScanline, tools::Long n
 void BitmapReadAccess::SetPixelForN32BitTcXbgr(Scanline pScanline, tools::Long 
nX, const BitmapColor& rBitmapColor, const ColorMask&)
 {
     pScanline = pScanline + ( nX << 2 );
-    *pScanline++ = 0xFF;
+    *pScanline++ = 0xFF - rBitmapColor.GetAlpha();;
     *pScanline++ = rBitmapColor.GetBlue();
     *pScanline++ = rBitmapColor.GetGreen();
     *pScanline = rBitmapColor.GetRed();
@@ -211,7 +211,8 @@ BitmapColor 
BitmapReadAccess::GetPixelForN32BitTcXrgb(ConstScanline pScanline, t
 {
     BitmapColor aBitmapColor;
 
-    pScanline = pScanline + ( nX << 2 ) + 1;
+    pScanline = pScanline + ( nX << 2 );
+    aBitmapColor.SetAlpha( 0xFF - *pScanline++ );
     aBitmapColor.SetRed( *pScanline++ );
     aBitmapColor.SetGreen( *pScanline++ );
     aBitmapColor.SetBlue( *pScanline );
@@ -233,7 +234,7 @@ void BitmapReadAccess::SetPixelForN32BitTcArgb(Scanline 
pScanline, tools::Long n
 void BitmapReadAccess::SetPixelForN32BitTcXrgb(Scanline pScanline, tools::Long 
nX, const BitmapColor& rBitmapColor, const ColorMask&)
 {
     pScanline = pScanline + ( nX << 2 );
-    *pScanline++ = 0xFF;
+    *pScanline++ = 0xFF - rBitmapColor.GetAlpha();
     *pScanline++ = rBitmapColor.GetRed();
     *pScanline++ = rBitmapColor.GetGreen();
     *pScanline = rBitmapColor.GetBlue();
@@ -262,9 +263,8 @@ BitmapColor 
BitmapReadAccess::GetPixelForN32BitTcBgrx(ConstScanline pScanline, t
     pScanline = pScanline + ( nX << 2 );
     aBitmapColor.SetBlue( *pScanline++ );
     aBitmapColor.SetGreen( *pScanline++ );
-    aBitmapColor.SetRed( *pScanline );
-    if (comphelper::LibreOfficeKit::isActive())
-        aBitmapColor.SetAlpha(0xFF - *(++pScanline));
+    aBitmapColor.SetRed( *pScanline++ );
+    aBitmapColor.SetAlpha( 0xFF - *pScanline );
 
     return aBitmapColor;
 }
@@ -286,7 +286,7 @@ void BitmapReadAccess::SetPixelForN32BitTcBgrx(Scanline 
pScanline, tools::Long n
     *pScanline++ = rBitmapColor.GetBlue();
     *pScanline++ = rBitmapColor.GetGreen();
     *pScanline++ = rBitmapColor.GetRed();
-    *pScanline = (comphelper::LibreOfficeKit::isActive()) ? 0xFF - 
rBitmapColor.GetAlpha() : 0xFF;
+    *pScanline = 0xFF - rBitmapColor.GetAlpha();
 }
 
 BitmapColor BitmapReadAccess::GetPixelForN32BitTcRgba(ConstScanline pScanline, 
tools::Long nX, const ColorMask&)
@@ -312,7 +312,8 @@ BitmapColor 
BitmapReadAccess::GetPixelForN32BitTcRgbx(ConstScanline pScanline, t
     pScanline = pScanline + ( nX << 2 );
     aBitmapColor.SetRed( *pScanline++ );
     aBitmapColor.SetGreen( *pScanline++ );
-    aBitmapColor.SetBlue( *pScanline );
+    aBitmapColor.SetBlue( *pScanline++ );
+    aBitmapColor.SetAlpha( 0xFF - *pScanline );
 
     return aBitmapColor;
 }
@@ -334,7 +335,7 @@ void BitmapReadAccess::SetPixelForN32BitTcRgbx(Scanline 
pScanline, tools::Long n
     *pScanline++ = rBitmapColor.GetRed();
     *pScanline++ = rBitmapColor.GetGreen();
     *pScanline++ = rBitmapColor.GetBlue();
-    *pScanline = 0xFF;
+    *pScanline = 0xFF - rBitmapColor.GetAlpha();
 }
 
 BitmapColor BitmapReadAccess::GetPixelForN32BitTcMask(ConstScanline pScanline, 
tools::Long nX, const ColorMask& rMask)

Reply via email to