vcl/source/bitmap/BitmapMosaicFilter.cxx |  236 +++++++++++++++----------------
 1 file changed, 118 insertions(+), 118 deletions(-)

New commits:
commit 522d2aaf1ca830bcf3bca816b06cc8faa893cd0d
Author:     Chris Sherlock <chris.sherloc...@gmail.com>
AuthorDate: Sun Sep 1 05:31:56 2024 +1000
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Fri Sep 27 08:28:08 2024 +0200

    vcl: flatten BitmapMosaicFilter::execute()
    
    Change-Id: I9e56c285cffe14374a66204ef8126a20f0e7c07c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173203
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/vcl/source/bitmap/BitmapMosaicFilter.cxx 
b/vcl/source/bitmap/BitmapMosaicFilter.cxx
index 0f89b23b9a6d..070b4932cf09 100644
--- a/vcl/source/bitmap/BitmapMosaicFilter.cxx
+++ b/vcl/source/bitmap/BitmapMosaicFilter.cxx
@@ -15,162 +15,162 @@
 
 BitmapEx BitmapMosaicFilter::execute(BitmapEx const& rBitmapEx) const
 {
+    if (!(mnTileWidth > 1 || mnTileHeight > 1))
+        return BitmapEx();
+
     Bitmap aBitmap(rBitmapEx.GetBitmap());
 
-    bool bRet = false;
+    std::optional<Bitmap> pNewBmp;
+    BitmapScopedReadAccess pReadAcc;
+    BitmapScopedWriteAccess pWriteAcc;
 
-    if (mnTileWidth > 1 || mnTileHeight > 1)
+    if (!isPalettePixelFormat(aBitmap.getPixelFormat()))
+    {
+        pReadAcc = aBitmap;
+        pWriteAcc = aBitmap;
+    }
+    else
     {
-        std::optional<Bitmap> pNewBmp;
-        BitmapScopedReadAccess pReadAcc;
-        BitmapScopedWriteAccess pWriteAcc;
+        pNewBmp.emplace(aBitmap.GetSizePixel(), vcl::PixelFormat::N24_BPP);
+        pReadAcc = aBitmap;
+        pWriteAcc = *pNewBmp;
+    }
 
-        if (!isPalettePixelFormat(aBitmap.getPixelFormat()))
-        {
-            pReadAcc = aBitmap;
-            pWriteAcc = aBitmap;
-        }
-        else
-        {
-            pNewBmp.emplace(aBitmap.GetSizePixel(), vcl::PixelFormat::N24_BPP);
-            pReadAcc = aBitmap;
-            pWriteAcc = *pNewBmp;
-        }
+    bool bConditionsMet = false;
+    sal_Int32 nWidth(0);
+    sal_Int32 nHeight(0);
+    if (pReadAcc && pWriteAcc)
+    {
+        nWidth = pReadAcc->Width();
+        nHeight = pReadAcc->Height();
+        bConditionsMet = (nWidth > 0 && nHeight > 0);
+    }
 
-        bool bConditionsMet = false;
-        sal_Int32 nWidth(0);
-        sal_Int32 nHeight(0);
-        if (pReadAcc && pWriteAcc)
-        {
-            nWidth = pReadAcc->Width();
-            nHeight = pReadAcc->Height();
-            bConditionsMet = (nWidth > 0 && nHeight > 0);
-        }
+    bool bRet = false;
 
-        if (bConditionsMet)
-        {
-            BitmapColor aCol;
-            sal_Int32 nX, nY, nX1, nX2, nY1, nY2, nSumR, nSumG, nSumB;
-            double fArea_1;
+    if (bConditionsMet)
+    {
+        BitmapColor aCol;
+        sal_Int32 nX, nY, nX1, nX2, nY1, nY2, nSumR, nSumG, nSumB;
+        double fArea_1;
 
-            nY1 = 0;
-            nY2 = mnTileHeight - 1;
+        nY1 = 0;
+        nY2 = mnTileHeight - 1;
 
-            if (nY2 >= nHeight)
-                nY2 = nHeight - 1;
+        if (nY2 >= nHeight)
+            nY2 = nHeight - 1;
 
-            do
-            {
-                nX1 = 0;
-                nX2 = mnTileWidth - 1;
+        do
+        {
+            nX1 = 0;
+            nX2 = mnTileWidth - 1;
 
-                if (nX2 >= nWidth)
-                    nX2 = nWidth - 1;
+            if (nX2 >= nWidth)
+                nX2 = nWidth - 1;
 
-                fArea_1 = 1.0 / ((nX2 - nX1 + 1) * (nY2 - nY1 + 1));
+            fArea_1 = 1.0 / ((nX2 - nX1 + 1) * (nY2 - nY1 + 1));
 
-                if (!pNewBmp)
+            if (!pNewBmp)
+            {
+                do
                 {
-                    do
+                    for (nY = nY1, nSumR = nSumG = nSumB = 0; nY <= nY2; nY++)
                     {
-                        for (nY = nY1, nSumR = nSumG = nSumB = 0; nY <= nY2; 
nY++)
+                        Scanline pScanlineRead = pReadAcc->GetScanline(nY);
+                        for (nX = nX1; nX <= nX2; nX++)
                         {
-                            Scanline pScanlineRead = pReadAcc->GetScanline(nY);
-                            for (nX = nX1; nX <= nX2; nX++)
-                            {
-                                aCol = 
pReadAcc->GetPixelFromData(pScanlineRead, nX);
-                                nSumR += aCol.GetRed();
-                                nSumG += aCol.GetGreen();
-                                nSumB += aCol.GetBlue();
-                            }
+                            aCol = pReadAcc->GetPixelFromData(pScanlineRead, 
nX);
+                            nSumR += aCol.GetRed();
+                            nSumG += aCol.GetGreen();
+                            nSumB += aCol.GetBlue();
                         }
+                    }
 
-                        aCol.SetRed(static_cast<sal_uInt8>(nSumR * fArea_1));
-                        aCol.SetGreen(static_cast<sal_uInt8>(nSumG * fArea_1));
-                        aCol.SetBlue(static_cast<sal_uInt8>(nSumB * fArea_1));
+                    aCol.SetRed(static_cast<sal_uInt8>(nSumR * fArea_1));
+                    aCol.SetGreen(static_cast<sal_uInt8>(nSumG * fArea_1));
+                    aCol.SetBlue(static_cast<sal_uInt8>(nSumB * fArea_1));
 
-                        for (nY = nY1; nY <= nY2; nY++)
-                        {
-                            Scanline pScanline = pWriteAcc->GetScanline(nY);
-                            for (nX = nX1; nX <= nX2; nX++)
-                                pWriteAcc->SetPixelOnData(pScanline, nX, aCol);
-                        }
+                    for (nY = nY1; nY <= nY2; nY++)
+                    {
+                        Scanline pScanline = pWriteAcc->GetScanline(nY);
+                        for (nX = nX1; nX <= nX2; nX++)
+                            pWriteAcc->SetPixelOnData(pScanline, nX, aCol);
+                    }
 
-                        nX1 += mnTileWidth;
-                        nX2 += mnTileWidth;
+                    nX1 += mnTileWidth;
+                    nX2 += mnTileWidth;
 
-                        if (nX2 >= nWidth)
-                        {
-                            nX2 = nWidth - 1;
-                            fArea_1 = 1.0 / ((nX2 - nX1 + 1) * (nY2 - nY1 + 
1));
-                        }
-                    } while (nX1 < nWidth);
-                }
-                else
+                    if (nX2 >= nWidth)
+                    {
+                        nX2 = nWidth - 1;
+                        fArea_1 = 1.0 / ((nX2 - nX1 + 1) * (nY2 - nY1 + 1));
+                    }
+                } while (nX1 < nWidth);
+            }
+            else
+            {
+                do
                 {
-                    do
+                    for (nY = nY1, nSumR = nSumG = nSumB = 0; nY <= nY2; nY++)
                     {
-                        for (nY = nY1, nSumR = nSumG = nSumB = 0; nY <= nY2; 
nY++)
+                        Scanline pScanlineRead = pReadAcc->GetScanline(nY);
+                        for (nX = nX1; nX <= nX2; nX++)
                         {
-                            Scanline pScanlineRead = pReadAcc->GetScanline(nY);
-                            for (nX = nX1; nX <= nX2; nX++)
-                            {
-                                const BitmapColor& rCol = 
pReadAcc->GetPaletteColor(
-                                    pReadAcc->GetIndexFromData(pScanlineRead, 
nX));
-                                nSumR += rCol.GetRed();
-                                nSumG += rCol.GetGreen();
-                                nSumB += rCol.GetBlue();
-                            }
+                            const BitmapColor& rCol = 
pReadAcc->GetPaletteColor(
+                                pReadAcc->GetIndexFromData(pScanlineRead, nX));
+                            nSumR += rCol.GetRed();
+                            nSumG += rCol.GetGreen();
+                            nSumB += rCol.GetBlue();
                         }
+                    }
 
-                        aCol.SetRed(static_cast<sal_uInt8>(nSumR * fArea_1));
-                        aCol.SetGreen(static_cast<sal_uInt8>(nSumG * fArea_1));
-                        aCol.SetBlue(static_cast<sal_uInt8>(nSumB * fArea_1));
+                    aCol.SetRed(static_cast<sal_uInt8>(nSumR * fArea_1));
+                    aCol.SetGreen(static_cast<sal_uInt8>(nSumG * fArea_1));
+                    aCol.SetBlue(static_cast<sal_uInt8>(nSumB * fArea_1));
 
-                        for (nY = nY1; nY <= nY2; nY++)
-                        {
-                            Scanline pScanline = pWriteAcc->GetScanline(nY);
-                            for (nX = nX1; nX <= nX2; nX++)
-                                pWriteAcc->SetPixelOnData(pScanline, nX, aCol);
-                        }
+                    for (nY = nY1; nY <= nY2; nY++)
+                    {
+                        Scanline pScanline = pWriteAcc->GetScanline(nY);
+                        for (nX = nX1; nX <= nX2; nX++)
+                            pWriteAcc->SetPixelOnData(pScanline, nX, aCol);
+                    }
 
-                        nX1 += mnTileWidth;
-                        nX2 += mnTileWidth;
+                    nX1 += mnTileWidth;
+                    nX2 += mnTileWidth;
 
-                        if (nX2 >= nWidth)
-                        {
-                            nX2 = nWidth - 1;
-                            fArea_1 = 1.0 / ((nX2 - nX1 + 1) * (nY2 - nY1 + 
1));
-                        }
-                    } while (nX1 < nWidth);
-                }
+                    if (nX2 >= nWidth)
+                    {
+                        nX2 = nWidth - 1;
+                        fArea_1 = 1.0 / ((nX2 - nX1 + 1) * (nY2 - nY1 + 1));
+                    }
+                } while (nX1 < nWidth);
+            }
 
-                nY1 += mnTileHeight;
-                nY2 += mnTileHeight;
+            nY1 += mnTileHeight;
+            nY2 += mnTileHeight;
 
-                if (nY2 >= nHeight)
-                    nY2 = nHeight - 1;
+            if (nY2 >= nHeight)
+                nY2 = nHeight - 1;
 
-            } while (nY1 < nHeight);
+        } while (nY1 < nHeight);
 
-            bRet = true;
-        }
+        bRet = true;
+    }
 
-        pReadAcc.reset();
-        pWriteAcc.reset();
+    pReadAcc.reset();
+    pWriteAcc.reset();
 
-        if (pNewBmp)
+    if (pNewBmp)
+    {
+        if (bRet)
         {
-            if (bRet)
-            {
-                const MapMode aMap(aBitmap.GetPrefMapMode());
-                const Size aPrefSize(aBitmap.GetPrefSize());
+            const MapMode aMap(aBitmap.GetPrefMapMode());
+            const Size aPrefSize(aBitmap.GetPrefSize());
 
-                aBitmap = *pNewBmp;
+            aBitmap = *pNewBmp;
 
-                aBitmap.SetPrefMapMode(aMap);
-                aBitmap.SetPrefSize(aPrefSize);
-            }
+            aBitmap.SetPrefMapMode(aMap);
+            aBitmap.SetPrefSize(aPrefSize);
         }
     }
 

Reply via email to