Index: src/ports/SkFontHost_FreeType.cpp |
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp |
index 7ac2083930a0cd020b00da7f90d802e47ab9b9ce..aaf6d4f5a8cbf3492d349062c74771a94f3cbcb3 100644 |
--- a/src/ports/SkFontHost_FreeType.cpp |
+++ b/src/ports/SkFontHost_FreeType.cpp |
@@ -1301,7 +1301,10 @@ void SkScalerContext_FreeType::generateMetrics(SkGlyph* glyph) { |
} |
} |
- if (fFace->glyph->format == FT_GLYPH_FORMAT_BITMAP && fScaleY && fFace->size->metrics.y_ppem) { |
+ // Do not try to scale embedded bitmaps; only scale bitmaps in bitmap only fonts. |
+ if (fFace->glyph->format == FT_GLYPH_FORMAT_BITMAP && !FT_IS_SCALABLE(fFace) && |
+ fScaleY && fFace->size->metrics.y_ppem) |
mtklein
2014/09/22 18:50:42
First check is now obsolete?
bungeman-skia
2014/09/22 19:02:52
Indeed it is. It makes more sense to say !FT_IS_SC
|
+ { |
// NOTE: both dimensions are scaled by y_ppem. this is WAI. |
scaleGlyphMetrics(*glyph, SkScalarDiv(SkFixedToScalar(fScaleY), |
SkIntToScalar(fFace->size->metrics.y_ppem))); |