[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] svg_metrics 34c62a094: * src/truetype/ttgload.c (TT_Load_Gly
From: |
Werner Lemberg |
Subject: |
[freetype2] svg_metrics 34c62a094: * src/truetype/ttgload.c (TT_Load_Glyph): Simplify SVG metrics scaling. |
Date: |
Wed, 19 Oct 2022 14:23:13 -0400 (EDT) |
branch: svg_metrics
commit 34c62a0943e9240b310eb06e34a2744451ab9c33
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>
* src/truetype/ttgload.c (TT_Load_Glyph): Simplify SVG metrics scaling.
Use pre-computed scale factors from the size metrics.
---
src/truetype/ttgload.c | 25 ++++++++++---------------
1 file changed, 10 insertions(+), 15 deletions(-)
diff --git a/src/truetype/ttgload.c b/src/truetype/ttgload.c
index 68698df14..7a25465c0 100644
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -2873,11 +2873,6 @@
{
SFNT_Service sfnt;
- FT_Short leftBearing;
- FT_Short topBearing;
- FT_UShort advanceX;
- FT_UShort advanceY;
-
FT_TRACE3(( "Trying to load SVG glyph\n" ));
sfnt = (SFNT_Service)( (TT_Face)glyph->face )->sfnt;
@@ -2885,7 +2880,14 @@
error = sfnt->load_svg_doc( glyph, glyph_index );
if ( !error )
{
- TT_Face face = (TT_Face)glyph->face;
+ TT_Face face = (TT_Face)glyph->face;
+ FT_Fixed x_scale = size->root.metrics.x_scale;
+ FT_Fixed y_scale = size->root.metrics.y_scale;
+
+ FT_Short leftBearing;
+ FT_Short topBearing;
+ FT_UShort advanceX;
+ FT_UShort advanceY;
FT_TRACE3(( "Successfully loaded SVG glyph\n" ));
@@ -2906,15 +2908,8 @@
glyph->linearHoriAdvance = advanceX;
glyph->linearVertAdvance = advanceY;
- advanceX = (FT_UShort)FT_MulDiv( advanceX,
- glyph->face->size->metrics.x_ppem,
- glyph->face->units_per_EM );
- advanceY = (FT_UShort)FT_MulDiv( advanceY,
- glyph->face->size->metrics.y_ppem,
- glyph->face->units_per_EM );
-
- glyph->metrics.horiAdvance = advanceX << 6;
- glyph->metrics.vertAdvance = advanceY << 6;
+ glyph->metrics.horiAdvance = FT_MulFix( advanceX, x_scale );
+ glyph->metrics.vertAdvance = FT_MulFix( advanceY, y_scale );
return error;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] svg_metrics 34c62a094: * src/truetype/ttgload.c (TT_Load_Glyph): Simplify SVG metrics scaling.,
Werner Lemberg <=