# HG changeset patch # User eugeni # Date 1157486780 0 # Node ID 3fc2235ff0626698b9e5138a5eb1e3edbc746237 # Parent 5b40e87b9619671f74b9b8f02e4d61d6536b79b4 Workaround for broken fonts with bad ascender/descender. diff -r 5b40e87b9619 -r 3fc2235ff062 libass/ass_render.c --- a/libass/ass_render.c Tue Sep 05 19:06:15 2006 +0000 +++ b/libass/ass_render.c Tue Sep 05 20:06:20 2006 +0000 @@ -1467,17 +1467,21 @@ static int get_face_ascender(FT_Face face) { int v = face->size->metrics.ascender; - if (!v) - v = FT_MulFix(face->bbox.yMax, face->size->metrics.y_scale); - return v; + int v2 = FT_MulFix(face->bbox.yMax, face->size->metrics.y_scale); + if (v > v2 * 0.9) + return v; + else + return v2; } static int get_face_descender(FT_Face face) { - int v = face->size->metrics.descender; - if (!v) - v = FT_MulFix(face->bbox.yMin, face->size->metrics.y_scale); - return -v; + int v = - face->size->metrics.descender; + int v2 = - FT_MulFix(face->bbox.yMin, face->size->metrics.y_scale); + if (v > v2 * 0.9) + return v; + else + return v2; } /**