vcl/source/bitmap/bitmappaint.cxx | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-)
New commits: commit 112dd7edb69a0262d829fb071df1bc5d402aab50 Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Fri Feb 9 11:34:55 2024 +0000 Commit: Caolán McNamara <caolan.mcnam...@collabora.com> CommitDate: Fri Feb 9 14:45:03 2024 +0100 ofz#66573 directly invert the colors in the palette instead of looping over each pixel. Change-Id: I00d23d0c7d16dcf6e71c81bbad0a7b4cd3d241a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163159 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com> diff --git a/vcl/source/bitmap/bitmappaint.cxx b/vcl/source/bitmap/bitmappaint.cxx index cc3674ad3123..bbf3239905f6 100644 --- a/vcl/source/bitmap/bitmappaint.cxx +++ b/vcl/source/bitmap/bitmappaint.cxx @@ -83,7 +83,6 @@ bool Bitmap::Invert() if (pWriteAcc->HasPalette()) { const sal_uInt16 nActColors = pWriteAcc->GetPaletteEntryCount(); - const sal_uInt16 nMaxColors = 1 << pWriteAcc->GetBitCount(); if (pWriteAcc->GetPalette().IsGreyPalette8Bit()) { @@ -100,18 +99,11 @@ bool Bitmap::Invert() } else { - for (tools::Long nY = 0; nY < nHeight; nY++) + for (sal_uInt16 i = 0; i < nActColors; ++i) { - Scanline pScanline = pWriteAcc->GetScanline(nY); - for (tools::Long nX = 0; nX < nWidth; nX++) - { - BitmapColor aBmpColor = pWriteAcc->GetPixelFromData(pScanline, nX); - aBmpColor = pWriteAcc->GetPaletteColor(aBmpColor.GetIndex()); - aBmpColor.Invert(); - BitmapColor aReplace = UpdatePaletteForNewColor( - pWriteAcc, nActColors, nMaxColors, nHeight, nWidth, aBmpColor); - pWriteAcc->SetPixelOnData(pScanline, nX, aReplace); - } + BitmapColor aBmpColor = pWriteAcc->GetPaletteColor(i); + aBmpColor.Invert(); + pWriteAcc->SetPaletteColor(i, aBmpColor); } } }