[HarfBuzz] Default hb_font_t scale

Behdad Esfahbod behdad at behdad.org
Wed Sep 2 01:12:50 PDT 2015


Right now default scale is 0,0 when a new font is created.  Should I change
that to upem,upem?  That sounds like a more useful default.

Specifically, this pattern is becoming more common:

parent_font = hb_font_create (face);
hb_ot_font_set_funcs (parent_font);

font = hb_font_create_sub_font (parent_font);
hb_font_set_funcs(font, custom_funcs...);

hb_font_set_scale(font, ...);


This way custom funcs can provide only a few (say, hinted h_advance) function
and everything else comes from parent_font.  For size-related things (like
glyph_extents()) that do come from parent_font, they are scaled properly to
match the scale of the new font, but that will only work if the scale of
parent_font is NOT zero, otherwise the extents will be converted to a scale of
zero (ie, they all become zero), then go through a division by zero!

Changing the default scale addresses that, and plus, make "shape at font
units" the default behavior.

Objections?

Cheers,
-- 
behdad
http://behdad.org/


More information about the HarfBuzz mailing list