diff options
author | Grigori Goronzy <greg@blackbox> | 2009-07-16 22:44:12 +0200 |
---|---|---|
committer | Grigori Goronzy <greg@blackbox> | 2009-07-17 00:21:51 +0200 |
commit | b625c5a90cb8076612c0b1c8032db8629809b92e (patch) | |
tree | 7a219eb90f8312ec9cdf042192161ed7e88f19fb /libass/ass_font.c | |
parent | 4ebb07452a0d5026dc9b21c95d76ab757ae41c48 (diff) | |
download | libass-b625c5a90cb8076612c0b1c8032db8629809b92e.tar.bz2 libass-b625c5a90cb8076612c0b1c8032db8629809b92e.tar.xz |
Tweak font metrics to match Windows GDI
Try to change ascender/descender calculation to be more compatible
with Windows GDI and consequently, VSFilter.
Diffstat (limited to 'libass/ass_font.c')
-rw-r--r-- | libass/ass_font.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libass/ass_font.c b/libass/ass_font.c index 34ae292..35d34cf 100644 --- a/libass/ass_font.c +++ b/libass/ass_font.c @@ -268,8 +268,9 @@ void ass_font_get_asc_desc(ass_font_t *font, uint32_t ch, int *asc, for (i = 0; i < font->n_faces; ++i) { FT_Face face = font->faces[i]; if (FT_Get_Char_Index(face, ch)) { - *asc = face->size->metrics.ascender; - *desc = -face->size->metrics.descender; + int y_scale = face->size->metrics.y_scale; + *asc = FT_MulFix(face->ascender, y_scale); + *desc = FT_MulFix(-face->descender, y_scale); return; } } |