Commit 57f1b8d
take ascender value from bounding box
Changed files (3)
modifiedlibbirdfont/OpenFontFormat/HeadTable.valamodifiedlibbirdfont/OpenFontFormat/HheaTable.valamodifiedlibbirdfont/OpenFontFormat/Os2Table.vala
Diff
@@ -40,7 +40,8 @@ class HeadTable : Table { uint64 created; uint64 modified; - public static uint16 units_per_em = 4096;+ // public static uint16 units_per_em = 4096; FIXME: windows testing+ public static uint16 units_per_em = 1000; public static double UNITS = 10 * (units_per_em / 1000); const uint8 BASELINE_AT_ZERO = 1 << 0;@@ -178,7 +179,7 @@ class HeadTable : Table { printd (@"ymin: $ymin\n"); printd (@"xmax: $xmax\n"); printd (@"ymax: $ymax\n");-+ font_data.add_short (xmin); font_data.add_short (ymin); font_data.add_short (xmax);@@ -81,14 +81,18 @@ class HheaTable : Table { } public void process () throws GLib.Error {+ int16 ascender, descender; Font font = OpenFontFormatWriter.get_current_font (); FontData fd = new FontData (); Fixed version = 1 << 16; fd.add_fixed (version); // table version - fd.add_16 ((int16) (-1 * (font.top_position - font.base_line) * HeadTable.UNITS)); // Ascender- fd.add_16 ((int16) (-1 * font.bottom_position * HeadTable.UNITS)); // Descender+ ascender = glyf_table.ymax;+ descender = glyf_table.ymin; // FIXME: look up, should it be -descender?+ + fd.add_16 (ascender); // Ascender+ fd.add_16 (descender); // Descender fd.add_16 (0); // LineGap fd.add_u16 (hmtx_table.max_advance); // maximum advance width value in 'hmtx' table.@@ -76,8 +76,8 @@ class Os2Table : Table { fd.add_u16 (glyf_table.get_first_char ()); // USHORT usFirstCharIndex fd.add_u16 (glyf_table.get_last_char ()); // USHORT usLastCharIndex - ascender = (int16) (glyf_table.xmax + font.base_line * HeadTable.UNITS);- descender = (int16) (-glyf_table.xmin + font.base_line * HeadTable.UNITS);+ ascender = glyf_table.ymax;+ descender = -glyf_table.ymin; fd.add_16 (ascender); // SHORT sTypoAscender fd.add_16 (descender); // SHORT sTypoDescender