Index: src/ports/SkFontHost_FreeType.cpp |
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp |
index 745a58a9963d808c0f7d9aa3c6a82457c0bc11af..340f40a14445f276d4deee17514bf3e18769420e 100644 |
--- a/src/ports/SkFontHost_FreeType.cpp |
+++ b/src/ports/SkFontHost_FreeType.cpp |
@@ -1171,6 +1171,7 @@ void SkScalerContext_FreeType::generateMetrics(SkGlyph* glyph) { |
glyph->zeroMetrics(); |
return; |
} |
+ emboldenIfNeeded(fFace, fFace->glyph); |
switch ( fFace->glyph->format ) { |
case FT_GLYPH_FORMAT_OUTLINE: |
@@ -1180,10 +1181,6 @@ void SkScalerContext_FreeType::generateMetrics(SkGlyph* glyph) { |
glyph->fTop = 0; |
glyph->fLeft = 0; |
} else { |
- if (fRec.fFlags & kEmbolden_Flag && !(fFace->style_flags & FT_STYLE_FLAG_BOLD)) { |
- emboldenOutline(fFace, &fFace->glyph->outline); |
- } |
- |
FT_BBox bbox; |
getBBoxForCurrentGlyph(glyph, &bbox, true); |
@@ -1197,11 +1194,6 @@ void SkScalerContext_FreeType::generateMetrics(SkGlyph* glyph) { |
break; |
case FT_GLYPH_FORMAT_BITMAP: |
- if (fRec.fFlags & kEmbolden_Flag) { |
- FT_GlyphSlot_Own_Bitmap(fFace->glyph); |
- FT_Bitmap_Embolden(gFTLibrary, &fFace->glyph->bitmap, kBitmapEmboldenStrength, 0); |
- } |
- |
if (fRec.fFlags & SkScalerContext::kVertical_Flag) { |
FT_Vector vector; |
vector.x = fFace->glyph->metrics.vertBearingX - fFace->glyph->metrics.horiBearingX; |
@@ -1280,6 +1272,7 @@ void SkScalerContext_FreeType::generateImage(const SkGlyph& glyph) { |
return; |
} |
+ emboldenIfNeeded(fFace, fFace->glyph); |
generateGlyphImage(fFace, glyph); |
} |
@@ -1307,6 +1300,7 @@ void SkScalerContext_FreeType::generatePath(const SkGlyph& glyph, |
path->reset(); |
return; |
} |
+ emboldenIfNeeded(fFace, fFace->glyph); |
generateGlyphPath(fFace, path); |
@@ -1380,9 +1374,7 @@ void SkScalerContext_FreeType::generateFontMetrics(SkPaint::FontMetrics* mx, |
if (x_glyph) { |
FT_BBox bbox; |
FT_Load_Glyph(fFace, x_glyph, fLoadGlyphFlags); |
- if ((fRec.fFlags & kEmbolden_Flag) && !(fFace->style_flags & FT_STYLE_FLAG_BOLD)) { |
- emboldenOutline(fFace, &fFace->glyph->outline); |
- } |
+ emboldenIfNeeded(fFace, fFace->glyph); |
FT_Outline_Get_CBox(&fFace->glyph->outline, &bbox); |
x_height = SkIntToScalar(bbox.yMax) / 64.0f; |
} |