12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- diff -u -r qtwebengine-opensource-src-5.9.1/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp qtwebengine-opensource-src-5.9.1-ftfixes/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp
- --- qtwebengine-opensource-src-5.9.1/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp 2017-09-19 17:38:43.659642835 +0200
- +++ qtwebengine-opensource-src-5.9.1-ftfixes/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp 2017-09-19 17:38:50.492991631 +0200
- @@ -80,7 +80,7 @@
-
- class FreeTypeLibrary : SkNoncopyable {
- public:
- - FreeTypeLibrary() : fLibrary(nullptr), fIsLCDSupported(false), fLCDExtra(0) {
- + FreeTypeLibrary() : fLibrary(nullptr) {
- if (FT_New_Library(&gFTMemory, &fLibrary)) {
- return;
- }
- @@ -90,8 +90,6 @@
- // Default { 0x10, 0x40, 0x70, 0x40, 0x10 } adds up to 0x110, simulating ink spread.
- // SetLcdFilter must be called before SetLcdFilterWeights.
- if (FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT) == 0) {
- - fIsLCDSupported = true;
- - fLCDExtra = 2; //Using a filter adds one full pixel to each side.
-
- #ifdef SK_FONTHOST_FREETYPE_USE_NORMAL_LCD_FILTER
- // Adds to 0x110 simulating ink spread, but provides better results than default.
- @@ -124,13 +122,9 @@
- }
-
- FT_Library library() { return fLibrary; }
- - bool isLCDSupported() { return fIsLCDSupported; }
- - int lcdExtra() { return fLCDExtra; }
-
- 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.
- @@ -633,17 +627,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
- @@ -1046,11 +1029,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;
- }
- }
- }
|