diff options
author | Lei Zhang <thestig@chromium.org> | 2015-08-17 15:05:46 -0700 |
---|---|---|
committer | Lei Zhang <thestig@chromium.org> | 2015-08-17 15:05:46 -0700 |
commit | 52a48aadc19b2dee8abeb702269bb168eb6b6999 (patch) | |
tree | e3a77486e920c04abe2f0890c1baa70399d5ab80 /core/src/fxge/ge/fx_ge_font.cpp | |
parent | 9494421208674d2c57a9f864d342f017c0b20902 (diff) | |
download | pdfium-52a48aadc19b2dee8abeb702269bb168eb6b6999.tar.xz |
Cleanup CFX_UnicodeEncoding and remove IFX_FontEncoding.
R=tsepez@chromium.org
Review URL: https://codereview.chromium.org/1296753003 .
Diffstat (limited to 'core/src/fxge/ge/fx_ge_font.cpp')
-rw-r--r-- | core/src/fxge/ge/fx_ge_font.cpp | 45 |
1 files changed, 12 insertions, 33 deletions
diff --git a/core/src/fxge/ge/fx_ge_font.cpp b/core/src/fxge/ge/fx_ge_font.cpp index 8be177ed14..d72adc36bf 100644 --- a/core/src/fxge/ge/fx_ge_font.cpp +++ b/core/src/fxge/ge/fx_ge_font.cpp @@ -379,48 +379,27 @@ int CFX_Font::GetULthickness() { FXFT_Get_Face_UnderLineThickness(m_Face)); return thickness; } -CFX_UnicodeEncoding::CFX_UnicodeEncoding(CFX_Font* pFont) { - m_pFont = pFont; + +CFX_UnicodeEncoding::CFX_UnicodeEncoding(CFX_Font* pFont) : m_pFont(pFont) { +} + +CFX_UnicodeEncoding::~CFX_UnicodeEncoding() { } + FX_DWORD CFX_UnicodeEncoding::GlyphFromCharCode(FX_DWORD charcode) { FXFT_Face face = m_pFont->GetFace(); - if (!face) { + if (!face) return charcode; - } - if (FXFT_Select_Charmap(face, FXFT_ENCODING_UNICODE) == 0) { + + if (FXFT_Select_Charmap(face, FXFT_ENCODING_UNICODE) == 0) return FXFT_Get_Char_Index(face, charcode); - } + if (m_pFont->m_pSubstFont && m_pFont->m_pSubstFont->m_Charset == 2) { FX_DWORD index = 0; - if (FXFT_Select_Charmap(face, FXFT_ENCODING_MS_SYMBOL) == 0) { + if (FXFT_Select_Charmap(face, FXFT_ENCODING_MS_SYMBOL) == 0) index = FXFT_Get_Char_Index(face, charcode); - } - if (!index && !FXFT_Select_Charmap(face, FXFT_ENCODING_APPLE_ROMAN)) { + if (!index && !FXFT_Select_Charmap(face, FXFT_ENCODING_APPLE_ROMAN)) return FXFT_Get_Char_Index(face, charcode); - } } return charcode; } -FX_DWORD CFX_UnicodeEncoding::GlyphFromCharCodeEx(FX_DWORD charcode, - int encoding) { - FXFT_Face face = m_pFont->GetFace(); - if (!face) { - return charcode; - } - if (encoding == ENCODING_UNICODE) { - return GlyphFromCharCode(charcode); - } - int nmaps = FXFT_Get_Face_CharmapCount(m_pFont->m_Face); - int i = 0; - while (i < nmaps) { - int encoding = FXFT_Get_Charmap_Encoding(FXFT_Get_Face_Charmaps(face)[i++]); - if (encoding != FXFT_ENCODING_UNICODE) { - FXFT_Select_Charmap(face, encoding); - break; - } - } - return FXFT_Get_Char_Index(face, charcode); -} -IFX_FontEncoding* FXGE_CreateUnicodeEncoding(CFX_Font* pFont) { - return new CFX_UnicodeEncoding(pFont); -} |