summaryrefslogtreecommitdiff
path: root/src/type1/t1gload.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/type1/t1gload.c')
-rw-r--r--src/type1/t1gload.c36
1 files changed, 8 insertions, 28 deletions
diff --git a/src/type1/t1gload.c b/src/type1/t1gload.c
index f45a83b40..75d2e9b69 100644
--- a/src/type1/t1gload.c
+++ b/src/type1/t1gload.c
@@ -315,11 +315,7 @@
glyph->root.linearHoriAdvance = decoder.builder.advance.x;
glyph->root.internal->glyph_transformed = 0;
- /* make up vertical metrics */
- metrics->vertBearingX = 0;
- metrics->vertBearingY = 0;
- metrics->vertAdvance = 0;
-
+ metrics->vertAdvance = 0;
glyph->root.linearVertAdvance = 0;
glyph->root.format = FT_GLYPH_FORMAT_OUTLINE;
@@ -363,42 +359,26 @@
vec->y = FT_MulFix( vec->y, y_scale );
}
- FT_Outline_Get_CBox( &glyph->root.outline, &cbox );
-
/* Then scale the metrics */
metrics->horiAdvance = FT_MulFix( metrics->horiAdvance, x_scale );
metrics->vertAdvance = FT_MulFix( metrics->vertAdvance, y_scale );
-
- metrics->vertBearingX = FT_MulFix( metrics->vertBearingX, x_scale );
- metrics->vertBearingY = FT_MulFix( metrics->vertBearingY, y_scale );
-
- if ( hinting )
- {
- metrics->horiAdvance = FT_PIX_ROUND( metrics->horiAdvance );
- metrics->vertAdvance = FT_PIX_ROUND( metrics->vertAdvance );
-
- metrics->vertBearingX = FT_PIX_ROUND( metrics->vertBearingX );
- metrics->vertBearingY = FT_PIX_ROUND( metrics->vertBearingY );
- }
}
/* compute the other metrics */
FT_Outline_Get_CBox( &glyph->root.outline, &cbox );
- /* grid fit the bounding box if necessary */
- if ( hinting )
- {
- cbox.xMin = FT_PIX_FLOOR( cbox.xMin );
- cbox.yMin = FT_PIX_FLOOR( cbox.yMin );
- cbox.xMax = FT_PIX_CEIL( cbox.xMax );
- cbox.yMax = FT_PIX_CEIL( cbox.yMax );
- }
-
metrics->width = cbox.xMax - cbox.xMin;
metrics->height = cbox.yMax - cbox.yMin;
metrics->horiBearingX = cbox.xMin;
metrics->horiBearingY = cbox.yMax;
+
+ /* make up vertical ones */
+ metrics->vertBearingX = 0;
+ metrics->vertBearingY = 0;
+
+ if ( hinting )
+ ft_glyphslot_grid_fit_metrics( &glyph->root );
}
/* Set control data to the glyph charstrings. Note that this is */