[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