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 SVN revision: 21404
This commit is contained in:
parent
ec8cd4cc08
commit
a14f932770
|
@ -38,6 +38,8 @@ evas_common_font_ascent_get(RGBA_Font *fn)
|
|||
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_descent_get(RGBA_Font *fn)
|
|||
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_max_ascent_get(RGBA_Font *fn)
|
|||
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_max_descent_get(RGBA_Font *fn)
|
|||
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_get_line_advance(RGBA_Font *fn)
|
|||
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;
|
||||
|
|
Loading…
Reference in New Issue