Don't try to scale embedded bitmaps.
If a font is bitmap only we need to scale a bitmap to obtain the requested size if there isn't an exact match. If a font has embedded bitmaps then these bitmaps should never be scaled by Skia. Allow FreeType to do the scaling (as requested by the font). BUG=chromium:408059 R=mtklein@google.com Author: bungeman@google.com Review URL: https://codereview.chromium.org/596513002
This commit is contained in:
parent
8d034a154f
commit
a85511adc0
@ -1301,7 +1301,9 @@ void SkScalerContext_FreeType::generateMetrics(SkGlyph* glyph) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fFace->glyph->format == FT_GLYPH_FORMAT_BITMAP && fScaleY && fFace->size->metrics.y_ppem) {
|
// If the font isn't scalable, scale the metrics from the non-scalable strike.
|
||||||
|
// This means do not try to scale embedded bitmaps; only scale bitmaps in bitmap only fonts.
|
||||||
|
if (!FT_IS_SCALABLE(fFace) && fScaleY && fFace->size->metrics.y_ppem) {
|
||||||
// NOTE: both dimensions are scaled by y_ppem. this is WAI.
|
// NOTE: both dimensions are scaled by y_ppem. this is WAI.
|
||||||
scaleGlyphMetrics(*glyph, SkScalarDiv(SkFixedToScalar(fScaleY),
|
scaleGlyphMetrics(*glyph, SkScalarDiv(SkFixedToScalar(fScaleY),
|
||||||
SkIntToScalar(fFace->size->metrics.y_ppem)));
|
SkIntToScalar(fFace->size->metrics.y_ppem)));
|
||||||
|
Loading…
Reference in New Issue
Block a user