[Libreoffice-commits] core.git: vcl/backendtest vcl/skia

Luboš Luňák (via logerrit) logerrit at kemper.freedesktop.org
Wed Apr 1 09:26:34 UTC 2020


 vcl/backendtest/outputdevice/common.cxx |   14 +++++++-------
 vcl/skia/gdiimpl.cxx                    |   20 +++-----------------
 2 files changed, 10 insertions(+), 24 deletions(-)

New commits:
commit 3ee0628e269f16f0fee5dde51e90bbf5180413a2
Author:     Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Mon Mar 30 20:34:04 2020 +0200
Commit:     Luboš Luňák <l.lunak at collabora.com>
CommitDate: Wed Apr 1 11:25:59 2020 +0200

    SalInvert::N50 has 1x1 pixel checker size, not 2x2 (tdf#131580)
    
    This can be seen with widget styles that use invert() to draw focus
    rectangle, such as with VCL gen or win backends.
    
    Change-Id: I7fb36d1be5333e917f871f8504585e32abe82b5a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91380
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lunak at collabora.com>

diff --git a/vcl/backendtest/outputdevice/common.cxx b/vcl/backendtest/outputdevice/common.cxx
index e76150c49c1f..f9052fb77201 100644
--- a/vcl/backendtest/outputdevice/common.cxx
+++ b/vcl/backendtest/outputdevice/common.cxx
@@ -302,11 +302,11 @@ TestResult OutputDeviceTestCommon::checkChecker(Bitmap& rBitmap, sal_Int32 nStar
     TestResult aReturnValue = TestResult::Passed;
 
     int choice = 0;
-    for (sal_Int32 y = nStartY; y <= nEndY; y+=2)
+    for (sal_Int32 y = nStartY; y <= nEndY; ++y)
     {
-        for (sal_Int32 x = nStartX; x <= nEndX; x+=2)
+        for (sal_Int32 x = nStartX; x <= nEndX; ++x)
         {
-            TestResult eResult = checkFilled(rBitmap, tools::Rectangle(Point(x, y), Size(2, 2)), rExpected[choice % 2]);
+            TestResult eResult = checkFilled(rBitmap, tools::Rectangle(Point(x, y), Size(1, 1)), rExpected[choice % 2]);
             checkResult(eResult, aReturnValue);
             choice++;
         }
@@ -324,13 +324,13 @@ TestResult OutputDeviceTestCommon::checkInvertN50Rectangle(Bitmap& aBitmap)
     eResult = checkRectangles(aBitmap, aExpected);
     checkResult(eResult, aReturnValue);
 
-    eResult = checkChecker(aBitmap, 2, 8, 2, 8, { COL_LIGHTCYAN, COL_LIGHTRED });
+    eResult = checkChecker(aBitmap, 2, 9, 2, 9, { COL_LIGHTCYAN, COL_LIGHTRED });
     checkResult(eResult, aReturnValue);
-    eResult = checkChecker(aBitmap, 2, 8, 10, 16, { COL_YELLOW, COL_LIGHTBLUE });
+    eResult = checkChecker(aBitmap, 2, 9, 10, 17, { COL_YELLOW, COL_LIGHTBLUE });
     checkResult(eResult, aReturnValue);
-    eResult = checkChecker(aBitmap, 10, 16, 2, 8, { COL_LIGHTMAGENTA, COL_LIGHTGREEN });
+    eResult = checkChecker(aBitmap, 10, 17, 2, 9, { COL_LIGHTMAGENTA, COL_LIGHTGREEN });
     checkResult(eResult, aReturnValue);
-    eResult = checkChecker(aBitmap, 10, 16, 10, 16, { COL_BLACK, COL_WHITE });
+    eResult = checkChecker(aBitmap, 10, 17, 10, 17, { COL_BLACK, COL_WHITE });
     checkResult(eResult, aReturnValue);
 
     return aReturnValue;
diff --git a/vcl/skia/gdiimpl.cxx b/vcl/skia/gdiimpl.cxx
index 9529fd507777..127c0d686a02 100644
--- a/vcl/skia/gdiimpl.cxx
+++ b/vcl/skia/gdiimpl.cxx
@@ -1067,35 +1067,21 @@ void SkiaSalGraphicsImpl::invert(basegfx::B2DPolygon const& rPoly, SalInvert eFl
         aPaint.setStyle(SkPaint::kFill_Style);
         aPaint.setBlendMode(SkBlendMode::kDifference);
 
-        // N50 inverts in 4x4 checker pattern
+        // N50 inverts in checker pattern
         if (eFlags == SalInvert::N50)
         {
-            // This creates 4x4 checker pattern bitmap
+            // This creates 2x2 checker pattern bitmap
             // TODO Use SkiaHelper::createSkSurface() and cache the image
             SkBitmap aBitmap;
-            aBitmap.allocN32Pixels(4, 4);
+            aBitmap.allocN32Pixels(2, 2);
             const SkPMColor white = SkPreMultiplyARGB(0xFF, 0xFF, 0xFF, 0xFF);
             const SkPMColor black = SkPreMultiplyARGB(0xFF, 0x00, 0x00, 0x00);
             SkPMColor* scanline;
             scanline = aBitmap.getAddr32(0, 0);
             *scanline++ = white;
-            *scanline++ = white;
-            *scanline++ = black;
             *scanline++ = black;
             scanline = aBitmap.getAddr32(0, 1);
-            *scanline++ = white;
-            *scanline++ = white;
-            *scanline++ = black;
-            *scanline++ = black;
-            scanline = aBitmap.getAddr32(0, 2);
             *scanline++ = black;
-            *scanline++ = black;
-            *scanline++ = white;
-            *scanline++ = white;
-            scanline = aBitmap.getAddr32(0, 3);
-            *scanline++ = black;
-            *scanline++ = black;
-            *scanline++ = white;
             *scanline++ = white;
             aBitmap.setImmutable();
             // The bitmap is repeated in both directions the checker pattern is as big


More information about the Libreoffice-commits mailing list