Merge to XFA: Fix no text displayed issue when font embedded and font subsetting...
authorJUN FANG <jun_fang@foxitsoftware.com>
Mon, 30 Mar 2015 23:24:09 +0000 (16:24 -0700)
committerJUN FANG <jun_fang@foxitsoftware.com>
Mon, 30 Mar 2015 23:35:37 +0000 (16:35 -0700)
BUG=465322
R=thestig@chromium.org

Review URL: https://codereview.chromium.org/1045553004

core/src/fxge/ge/fx_ge_text.cpp

index 59bd351..e20d6bc 100644 (file)
@@ -1332,7 +1332,17 @@ CFX_GlyphBitmap* CFX_FaceCache::RenderGlyph(CFX_Font* pFont, FX_DWORD glyph_inde
     int load_flags = (m_Face->face_flags & FT_FACE_FLAG_SFNT) ? FXFT_LOAD_NO_BITMAP : (FXFT_LOAD_NO_BITMAP | FT_LOAD_NO_HINTING);
     int error = FXFT_Load_Glyph(m_Face, glyph_index, load_flags);
     if (error) {
-        return NULL;
+        //if an error is returned, try to reload glyphs without hinting.
+        if (load_flags & FT_LOAD_NO_HINTING || load_flags & FT_LOAD_NO_SCALE) {
+            return NULL;
+        }
+
+        load_flags |= FT_LOAD_NO_HINTING;
+        error = FXFT_Load_Glyph(m_Face, glyph_index, load_flags);
+
+        if (error) { 
+            return NULL;
+        }
     }
     int weight = 0;
     if (bUseCJKSubFont) {