From 45ffe53b877cc2d03df9f1a9c58fcb3e87fa1b74 Mon Sep 17 00:00:00 2001 From: JUN FANG Date: Mon, 30 Mar 2015 16:24:09 -0700 Subject: Merge to XFA: Fix no text displayed issue when font embedded and font subsetting enabled BUG=465322 R=thestig@chromium.org Review URL: https://codereview.chromium.org/1045553004 --- core/src/fxge/ge/fx_ge_text.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/core/src/fxge/ge/fx_ge_text.cpp b/core/src/fxge/ge/fx_ge_text.cpp index 59bd351822..e20d6bc4bd 100644 --- a/core/src/fxge/ge/fx_ge_text.cpp +++ b/core/src/fxge/ge/fx_ge_text.cpp @@ -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) { -- cgit v1.2.3