[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - vcl/skia

Luboš Luňák (via logerrit) logerrit at kemper.freedesktop.org
Mon Jul 13 20:58:54 UTC 2020


 vcl/skia/win/gdiimpl.cxx |   10 ++++++++++
 1 file changed, 10 insertions(+)

New commits:
commit 1171d609c52fc1f7cd58787e9ebc1ecca32fe450
Author:     Luboš Luňák <l.lunak at collabora.com>
AuthorDate: Mon Jul 6 11:59:13 2020 +0200
Commit:     Adolfo Jayme Barrientos <fitojb at ubuntu.com>
CommitDate: Mon Jul 13 22:58:20 2020 +0200

    set also RGB/BGR LCD order for Skia text rendering (tdf#134275)
    
    Change-Id: I797a851f52d9ba4c18127219b9042348225d14dd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98199
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lunak at collabora.com>
    (cherry picked from commit fada69d6ee05700fd57c8844591562608a900a9d)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98089
    Reviewed-by: Adolfo Jayme Barrientos <fitojb at ubuntu.com>

diff --git a/vcl/skia/win/gdiimpl.cxx b/vcl/skia/win/gdiimpl.cxx
index 6129c8e266da..43ced4e9639f 100644
--- a/vcl/skia/win/gdiimpl.cxx
+++ b/vcl/skia/win/gdiimpl.cxx
@@ -22,6 +22,7 @@
 #include <SkTypeface_win.h>
 #include <SkFont.h>
 #include <SkFontMgr.h>
+#include <SkFontLCDConfig.h>
 #include <tools/sk_app/win/WindowContextFactory_win.h>
 #include <tools/sk_app/WindowContext.h>
 
@@ -213,16 +214,25 @@ SkFont::Edging WinSkiaSalGraphicsImpl::getFontEdging()
     // the glyphs will be rendered based on this setting (subpixel AA requires colors,
     // others do not).
     fontEdging = SkFont::Edging::kAlias;
+    SkFontLCDConfig::LCDOrder lcdOrder = SkFontLCDConfig::kNONE_LCDOrder;
     BOOL set;
     if (SystemParametersInfo(SPI_GETFONTSMOOTHING, 0, &set, 0) && set)
     {
         UINT set2;
         if (SystemParametersInfo(SPI_GETFONTSMOOTHINGTYPE, 0, &set2, 0)
             && set2 == FE_FONTSMOOTHINGCLEARTYPE)
+        {
             fontEdging = SkFont::Edging::kSubpixelAntiAlias;
+            if (SystemParametersInfo(SPI_GETFONTSMOOTHINGORIENTATION, 0, &set2, 0)
+                && set2 == FE_FONTSMOOTHINGORIENTATIONBGR)
+                lcdOrder = SkFontLCDConfig::kBGR_LCDOrder;
+            else
+                lcdOrder = SkFontLCDConfig::kRGB_LCDOrder; // default
+        }
         else
             fontEdging = SkFont::Edging::kAntiAlias;
     }
+    SkFontLCDConfig::SetSubpixelOrder(lcdOrder);
     // Cache this, it is actually visible a little bit when profiling.
     fontEdgingDone = true;
     return fontEdging;


More information about the Libreoffice-commits mailing list