mirror of
https://github.com/LibreOffice/core.git
synced 2025-07-26 15:45:26 +00:00
(do not) use SK_GAMMA_APPLY_TO_A8 also for Skia text on Windows
This is the Windows variant of the SK_GAMMA_APPLY_TO_A8 disabling, again I don't quite understand why we need to disable this, but with this patch Skia text rendering on Windows seems to be pixel-perfect when compared with the VCL gen backend. Change-Id: Iafc1e6353430e695dafa67d19eefd968d4f02ae2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90696 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
This commit is contained in:
1
external/skia/UnpackedTarball_skia.mk
vendored
1
external/skia/UnpackedTarball_skia.mk
vendored
@ -30,6 +30,7 @@ skia_patches := \
|
||||
clang-attributes-warning.patch.1 \
|
||||
fontconfig-get-typeface.patch.0 \
|
||||
windows-hfont-typeface.patch.0 \
|
||||
windows-text-gamma.patch.0 \
|
||||
|
||||
$(eval $(call gb_UnpackedTarball_set_patchlevel,skia,1))
|
||||
|
||||
|
28
external/skia/windows-text-gamma.patch.0
vendored
Normal file
28
external/skia/windows-text-gamma.patch.0
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
--- ./src/ports/SkFontHost_win.cpp.sav 2020-03-18 10:26:52.470184300 +0100
|
||||
+++ ./src/ports/SkFontHost_win.cpp 2020-03-18 12:08:04.598406700 +0100
|
||||
@@ -1215,17 +1215,23 @@
|
||||
// since the caller may require A8 for maskfilters, we can't check for BW
|
||||
// ... until we have the caller tell us that explicitly
|
||||
const SkGdiRGB* src = (const SkGdiRGB*)bits;
|
||||
+#if defined(SK_GAMMA_APPLY_TO_A8)
|
||||
if (fPreBlend.isApplicable()) {
|
||||
RGBToA8<true>(src, srcRB, glyph, fPreBlend.fG);
|
||||
- } else {
|
||||
+ } else
|
||||
+#endif
|
||||
+ {
|
||||
RGBToA8<false>(src, srcRB, glyph, fPreBlend.fG);
|
||||
}
|
||||
} else { // LCD16
|
||||
const SkGdiRGB* src = (const SkGdiRGB*)bits;
|
||||
SkASSERT(SkMask::kLCD16_Format == glyph.fMaskFormat);
|
||||
+#if defined(SK_GAMMA_APPLY_TO_A8)
|
||||
if (fPreBlend.isApplicable()) {
|
||||
RGBToLcd16<true>(src, srcRB, glyph, fPreBlend.fR, fPreBlend.fG, fPreBlend.fB);
|
||||
- } else {
|
||||
+ } else
|
||||
+#endif
|
||||
+ {
|
||||
RGBToLcd16<false>(src, srcRB, glyph, fPreBlend.fR, fPreBlend.fG, fPreBlend.fB);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user