|
|
|
@ -313,19 +313,21 @@ struct sbix |
|
|
|
|
if (strike_ppem) |
|
|
|
|
{ |
|
|
|
|
float scale = font->face->get_upem () / (float) strike_ppem; |
|
|
|
|
extents->x_bearing = font->em_scalef_x (extents->x_bearing * scale); |
|
|
|
|
extents->y_bearing = font->em_scalef_y (extents->y_bearing * scale); |
|
|
|
|
extents->width = font->em_scalef_x (extents->width * scale); |
|
|
|
|
extents->height = font->em_scalef_y (extents->height * scale); |
|
|
|
|
extents->x_bearing = roundf (extents->x_bearing * scale); |
|
|
|
|
extents->y_bearing = roundf (extents->y_bearing * scale); |
|
|
|
|
extents->width = roundf (extents->width * scale); |
|
|
|
|
extents->height = roundf (extents->height * scale); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
extents->x_bearing = font->em_scale_x (extents->x_bearing); |
|
|
|
|
extents->y_bearing = font->em_scale_y (extents->y_bearing); |
|
|
|
|
extents->width = font->em_scale_x (extents->width); |
|
|
|
|
extents->height = font->em_scale_y (extents->height); |
|
|
|
|
extents->x_bearing = extents->x_bearing; |
|
|
|
|
extents->y_bearing = extents->y_bearing; |
|
|
|
|
extents->width = extents->width; |
|
|
|
|
extents->height = extents->height; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
font->scale_glyph_extents (extents); |
|
|
|
|
|
|
|
|
|
hb_blob_destroy (blob); |
|
|
|
|
|
|
|
|
|
return strike_ppem; |
|
|
|
|