69 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
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;
 | 
						|
         }
 | 
						|
     }
 | 
						|
 }
 |