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

Reply via email to