Enlightenment CVS committal Author : stffrdhrn Project : e17 Module : libs/evas
Dir : e17/libs/evas/src/lib/engines/common Modified Files: evas_font_main.c Log Message: Dont crash on pcf fonts * for pcf fonts EM square is 0 and ascent and descent are 0 * TODO: get these things to render correctly =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/engines/common/evas_font_main.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- evas_font_main.c 19 Mar 2006 04:29:57 -0000 1.22 +++ evas_font_main.c 19 Mar 2006 10:50:33 -0000 1.23 @@ -38,6 +38,8 @@ evas_common_font_size_use(fn); fi = fn->fonts->data; val = (int)fi->src->ft.face->size->metrics.ascender; + if (fi->src->ft.face->units_per_EM == 0) + return val; dv = (fi->src->ft.orig_upem * 2048) / fi->src->ft.face->units_per_EM; ret = (val * fi->src->ft.face->size->metrics.y_scale) / (dv * dv); return ret; @@ -53,6 +55,8 @@ evas_common_font_size_use(fn); fi = fn->fonts->data; val = -(int)fi->src->ft.face->size->metrics.descender; + if (fi->src->ft.face->units_per_EM == 0) + return val; dv = (fi->src->ft.orig_upem * 2048) / fi->src->ft.face->units_per_EM; ret = (val * fi->src->ft.face->size->metrics.y_scale) / (dv * dv); return ret; @@ -68,6 +72,8 @@ evas_common_font_size_use(fn); fi = fn->fonts->data; val = (int)fi->src->ft.face->bbox.yMax; + if (fi->src->ft.face->units_per_EM == 0) + return val; dv = (fi->src->ft.orig_upem * 2048) / fi->src->ft.face->units_per_EM; ret = (val * fi->src->ft.face->size->metrics.y_scale) / (dv * dv); return ret; @@ -83,6 +89,8 @@ evas_common_font_size_use(fn); fi = fn->fonts->data; val = -(int)fi->src->ft.face->bbox.yMin; + if (fi->src->ft.face->units_per_EM == 0) + return val; dv = (fi->src->ft.orig_upem * 2048) / fi->src->ft.face->units_per_EM; ret = (val * fi->src->ft.face->size->metrics.y_scale) / (dv * dv); return ret; @@ -98,6 +106,8 @@ evas_common_font_size_use(fn); fi = fn->fonts->data; val = (int)fi->src->ft.face->size->metrics.height; + if (fi->src->ft.face->units_per_EM == 0) + return val; dv = (fi->src->ft.orig_upem * 2048) / fi->src->ft.face->units_per_EM; ret = (val * fi->src->ft.face->size->metrics.y_scale) / (dv * dv); return ret; ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs