Index: src/ports/SkFontHost_FreeType.cpp |
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp |
index 0307d362712104f8dd0bd9c2580ee5c0f3183240..1c0b04e464fd6784665737dd009692698772c3ef 100644 |
--- a/src/ports/SkFontHost_FreeType.cpp |
+++ b/src/ports/SkFontHost_FreeType.cpp |
@@ -1026,6 +1026,7 @@ SkScalerContext_FreeType::SkScalerContext_FreeType(SkTypeface* typeface, |
if (fStrikeIndex == -1) { |
SkDEBUGF(("no glyphs for font \"%s\" size %f?\n", |
fFace->family_name, SkFixedToScalar(fScaleY))); |
+ this->setGenerateImageFromPath(true); |
} else { |
// FreeType does no provide linear metrics for bitmap fonts. |
linearMetrics = false; |
@@ -1037,6 +1038,7 @@ SkScalerContext_FreeType::SkScalerContext_FreeType(SkTypeface* typeface, |
// However, in FreeType 2.5.1 color bitmap only fonts do not ignore this flag. |
// Force this flag off for bitmap only fonts. |
fLoadGlyphFlags &= ~FT_LOAD_NO_BITMAP; |
+ this->setGenerateImageFromPath(false); |
} |
} else { |
SkDEBUGF(("unknown kind of font \"%s\" size %f?\n", |
@@ -1264,8 +1266,10 @@ void SkScalerContext_FreeType::generateMetrics(SkGlyph* glyph) { |
} |
if (fFace->glyph->bitmap.pixel_mode == FT_PIXEL_MODE_BGRA) { |
+ this->setGenerateImageFromPath(false); |
glyph->fMaskFormat = SkMask::kARGB32_Format; |
- } |
+ } else |
+ this->setGenerateImageFromPath(true); |
glyph->fWidth = SkToU16(fFace->glyph->bitmap.width); |
glyph->fHeight = SkToU16(fFace->glyph->bitmap.rows); |