| Index: core/fxge/ge/fx_ge_text.cpp
|
| diff --git a/core/fxge/ge/fx_ge_text.cpp b/core/fxge/ge/fx_ge_text.cpp
|
| index 10c769aa6ba6ce18ba8dc363f3bf4c0035cdf30d..1d18ecd3779b21bfe99a72681011334a9601017b 100644
|
| --- a/core/fxge/ge/fx_ge_text.cpp
|
| +++ b/core/fxge/ge/fx_ge_text.cpp
|
| @@ -1536,12 +1536,14 @@ CFX_GlyphBitmap* CFX_FaceCache::RenderGlyph(CFX_Font* pFont,
|
| skew = pSubstFont->m_ItalicAngle;
|
| }
|
| if (skew) {
|
| - skew = skew <= -ANGLESKEW_ARRAY_SIZE ? -58 : -g_AngleSkew[-skew];
|
| - if (pFont->IsVertical()) {
|
| + // skew is nonpositive so -skew is used as the index.
|
| + skew = -skew <= static_cast<int>(ANGLESKEW_ARRAY_SIZE)
|
| + ? -58
|
| + : -g_AngleSkew[-skew];
|
| + if (pFont->IsVertical())
|
| ft_matrix.yx += ft_matrix.yy * skew / 100;
|
| - } else {
|
| + else
|
| ft_matrix.xy += -ft_matrix.xx * skew / 100;
|
| - }
|
| }
|
| if (pSubstFont->m_SubstFlags & FXFONT_SUBST_MM) {
|
| pFont->AdjustMMParams(glyph_index, dest_width,
|
| @@ -1574,10 +1576,9 @@ CFX_GlyphBitmap* CFX_FaceCache::RenderGlyph(CFX_Font* pFont,
|
| }
|
| if (pSubstFont && !(pSubstFont->m_SubstFlags & FXFONT_SUBST_MM) &&
|
| weight > 400) {
|
| - int index = (weight - 400) / 10;
|
| - if (index >= WEIGHTPOW_ARRAY_SIZE) {
|
| + uint32_t index = (weight - 400) / 10;
|
| + if (index >= WEIGHTPOW_ARRAY_SIZE)
|
| return NULL;
|
| - }
|
| int level = 0;
|
| if (pSubstFont->m_Charset == FXFONT_SHIFTJIS_CHARSET) {
|
| level =
|
| @@ -1801,12 +1802,14 @@ CFX_PathData* CFX_Font::LoadGlyphPath(uint32_t glyph_index, int dest_width) {
|
| if (m_pSubstFont) {
|
| if (m_pSubstFont->m_ItalicAngle) {
|
| int skew = m_pSubstFont->m_ItalicAngle;
|
| - skew = skew <= -ANGLESKEW_ARRAY_SIZE ? -58 : -g_AngleSkew[-skew];
|
| - if (m_bVertical) {
|
| + // skew is nonpositive so -skew is used as the index.
|
| + skew = -skew <= static_cast<int>(ANGLESKEW_ARRAY_SIZE)
|
| + ? -58
|
| + : -g_AngleSkew[-skew];
|
| + if (m_bVertical)
|
| ft_matrix.yx += ft_matrix.yy * skew / 100;
|
| - } else {
|
| + else
|
| ft_matrix.xy += -ft_matrix.xx * skew / 100;
|
| - }
|
| }
|
| if (m_pSubstFont->m_SubstFlags & FXFONT_SUBST_MM) {
|
| AdjustMMParams(glyph_index, dest_width, m_pSubstFont->m_Weight);
|
| @@ -1817,21 +1820,18 @@ CFX_PathData* CFX_Font::LoadGlyphPath(uint32_t glyph_index, int dest_width) {
|
| if (!(m_Face->face_flags & FT_FACE_FLAG_SFNT) || !FT_IS_TRICKY(m_Face)) {
|
| load_flags |= FT_LOAD_NO_HINTING;
|
| }
|
| - int error = FXFT_Load_Glyph(m_Face, glyph_index, load_flags);
|
| - if (error) {
|
| + if (FXFT_Load_Glyph(m_Face, glyph_index, load_flags))
|
| return NULL;
|
| - }
|
| if (m_pSubstFont && !(m_pSubstFont->m_SubstFlags & FXFONT_SUBST_MM) &&
|
| m_pSubstFont->m_Weight > 400) {
|
| - int index = (m_pSubstFont->m_Weight - 400) / 10;
|
| + uint32_t index = (m_pSubstFont->m_Weight - 400) / 10;
|
| if (index >= WEIGHTPOW_ARRAY_SIZE)
|
| index = WEIGHTPOW_ARRAY_SIZE - 1;
|
| int level = 0;
|
| - if (m_pSubstFont->m_Charset == FXFONT_SHIFTJIS_CHARSET) {
|
| + if (m_pSubstFont->m_Charset == FXFONT_SHIFTJIS_CHARSET)
|
| level = g_WeightPow_SHIFTJIS[index] * 2 * 65536 / 36655;
|
| - } else {
|
| + else
|
| level = g_WeightPow[index] * 2;
|
| - }
|
| FXFT_Outline_Embolden(FXFT_Get_Glyph_Outline(m_Face), level);
|
| }
|
| FXFT_Outline_Funcs funcs;
|
|
|