- Add patch chromium-skia-system-fontconfig.patch to fix
bsc#1092272 OBS-URL: https://build.opensuse.org/package/show/network:chromium/chromium?expand=0&rev=1123
This commit is contained in:
committed by
Git OBS Bridge
parent
2f9393b4fc
commit
41cf46f1bc
77
chromium-skia-system-fontconfig.patch
Normal file
77
chromium-skia-system-fontconfig.patch
Normal file
@@ -0,0 +1,77 @@
|
||||
--- a/third_party/skia/src/ports/SkFontHost_FreeType.cpp 2017-10-10 17:42:06.956950985 +0200
|
||||
+++ b/third_party/skia/src/ports/SkFontHost_FreeType.cpp 2017-10-10 17:46:05.824187787 +0200
|
||||
@@ -99,8 +99,6 @@
|
||||
FreeTypeLibrary()
|
||||
: fGetVarDesignCoordinates(nullptr)
|
||||
, fLibrary(nullptr)
|
||||
- , fIsLCDSupported(false)
|
||||
- , fLCDExtra(0)
|
||||
{
|
||||
if (FT_New_Library(&gFTMemory, &fLibrary)) {
|
||||
return;
|
||||
@@ -147,12 +145,7 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
- // Setup LCD filtering. This reduces color fringes for LCD smoothed glyphs.
|
||||
- // The default has changed over time, so this doesn't mean the same thing to all users.
|
||||
- if (FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT) == 0) {
|
||||
- fIsLCDSupported = true;
|
||||
- fLCDExtra = 2; //Using a filter adds one full pixel to each side.
|
||||
- }
|
||||
+ FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT);
|
||||
}
|
||||
~FreeTypeLibrary() {
|
||||
if (fLibrary) {
|
||||
@@ -161,8 +153,6 @@
|
||||
}
|
||||
|
||||
FT_Library library() { return fLibrary; }
|
||||
- bool isLCDSupported() { return fIsLCDSupported; }
|
||||
- int lcdExtra() { return fLCDExtra; }
|
||||
|
||||
// FT_Get_{MM,Var}_{Blend,Design}_Coordinates were added in FreeType 2.7.1.
|
||||
// Prior to this there was no way to get the coordinates out of the FT_Face.
|
||||
@@ -173,8 +163,6 @@
|
||||
|
||||
private:
|
||||
FT_Library fLibrary;
|
||||
- bool fIsLCDSupported;
|
||||
- int fLCDExtra;
|
||||
|
||||
// FT_Library_SetLcdFilterWeights was introduced in FreeType 2.4.0.
|
||||
// The following platforms provide FreeType of at least 2.4.0.
|
||||
@@ -704,17 +692,6 @@
|
||||
rec->fTextSize = SkIntToScalar(1 << 14);
|
||||
}
|
||||
|
||||
- if (isLCD(*rec)) {
|
||||
- // TODO: re-work so that FreeType is set-up and selected by the SkFontMgr.
|
||||
- SkAutoMutexAcquire ama(gFTMutex);
|
||||
- ref_ft_library();
|
||||
- if (!gFTLibrary->isLCDSupported()) {
|
||||
- // If the runtime Freetype library doesn't support LCD, disable it here.
|
||||
- rec->fMaskFormat = SkMask::kA8_Format;
|
||||
- }
|
||||
- unref_ft_library();
|
||||
- }
|
||||
-
|
||||
SkPaint::Hinting h = rec->getHinting();
|
||||
if (SkPaint::kFull_Hinting == h && !isLCD(*rec)) {
|
||||
// collapse full->normal hinting if we're not doing LCD
|
||||
@@ -1115,11 +1092,11 @@
|
||||
void SkScalerContext_FreeType::updateGlyphIfLCD(SkGlyph* glyph) {
|
||||
if (isLCD(fRec)) {
|
||||
if (fLCDIsVert) {
|
||||
- glyph->fHeight += gFTLibrary->lcdExtra();
|
||||
- glyph->fTop -= gFTLibrary->lcdExtra() >> 1;
|
||||
+ glyph->fHeight += 2;
|
||||
+ glyph->fTop -= 1;
|
||||
} else {
|
||||
- glyph->fWidth += gFTLibrary->lcdExtra();
|
||||
- glyph->fLeft -= gFTLibrary->lcdExtra() >> 1;
|
||||
+ glyph->fWidth += 2;
|
||||
+ glyph->fLeft -= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user