Clone in a terminal:
Commit a5db3b0
Johan Mattsson - 2013-07-28T09:31:53+00:00
a5db3b05b89426ef78619ffc01bc60951cf8604bjohan.mattsson.m@gmail.com

4096 units per em

Changed files (8)

Diff

diff --git a/libbirdfont/MoveTool.vala b/libbirdfont/MoveTool.valaindex 7317fdd..c915b60 100644--- a/libbirdfont/MoveTool.vala+++ b/libbirdfont/MoveTool.vala@@ -247,6 +247,10 @@ class MoveTool : Tool { 			h = selected_path.ymax - selected_path.ymin; 			w = selected_path.xmax - selected_path.xmin; 			+			if (selected_path.points.length () == 0) {+				continue;+			}+			 			if (h * ratio < 1 || w * ratio < 1) { 				return false; 			}diff --git a/libbirdfont/OpenFontFormat/GlyfData.vala b/libbirdfont/OpenFontFormat/GlyfData.valaindex 4c16a10..bb75847 100644--- a/libbirdfont/OpenFontFormat/GlyfData.vala+++ b/libbirdfont/OpenFontFormat/GlyfData.vala@@ -51,6 +51,8 @@ class GlyfData : GLib.Object { 	public int16 bounding_box_xmax = 0; 	public int16 bounding_box_ymax = 0; 	+	private static double UNITS = HeadTable.UNITS;+	 	public GlyfData (Glyph g) {	 		glyph = g; 		diff --git a/libbirdfont/OpenFontFormat/HeadTable.vala b/libbirdfont/OpenFontFormat/HeadTable.valaindex 187385e..809661c 100644--- a/libbirdfont/OpenFontFormat/HeadTable.vala+++ b/libbirdfont/OpenFontFormat/HeadTable.vala@@ -40,7 +40,8 @@ class HeadTable : Table { 	uint64 created; 	uint64 modified; 		-	uint16 units_per_em = 4096;+	public static uint16 units_per_em = 4096;+	public static double UNITS = 10 * (units_per_em / 1000); 	 	const uint8 BASELINE_AT_ZERO = 1 << 0; 	const uint8 LSB_AT_ZERO = 1 << 1;@@ -162,7 +163,7 @@ class HeadTable : Table { 		//font_data.add_u16 (BASELINE_AT_ZERO | LSB_AT_ZERO); 		font_data.add_u16 (0); // flags 		-		font_data.add_u16 (1000); // units per em (should be a power of two for ttf fonts)+		font_data.add_u16 (units_per_em); // units per em (should be a power of two for ttf fonts) 		 		font_data.add_64 (0); // creation time since 1904-01-01 		font_data.add_64 (0); // modified time since 1904-01-01diff --git a/libbirdfont/OpenFontFormat/HheaTable.vala b/libbirdfont/OpenFontFormat/HheaTable.valaindex debede9..ecfa5c1 100644--- a/libbirdfont/OpenFontFormat/HheaTable.vala+++ b/libbirdfont/OpenFontFormat/HheaTable.vala@@ -87,8 +87,8 @@ class HheaTable : Table { 		 		fd.add_fixed (version); // table version 		-		fd.add_16 ((int16) (-1 * (font.top_position - font.base_line) * UNITS)); // Ascender-		fd.add_16 ((int16) (-1 * font.bottom_position * UNITS)); // Descender+		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 		fd.add_16 (0); // LineGap 				 		fd.add_u16 (hmtx_table.max_advance); // maximum advance width value in 'hmtx' table.diff --git a/libbirdfont/OpenFontFormat/HmtxTable.vala b/libbirdfont/OpenFontFormat/HmtxTable.valaindex eb65e23..78285ea 100644--- a/libbirdfont/OpenFontFormat/HmtxTable.vala+++ b/libbirdfont/OpenFontFormat/HmtxTable.vala@@ -105,9 +105,9 @@ class HmtxTable : Table { 		// advance and lsb 		foreach (Glyph g in glyf_table.glyphs) { 			g.boundries (out xmin, out ymin, out xmax, out ymax);-			lsb = (int16) (-1 * (g.left_limit - xmin) * UNITS);-			advance = (int16) ((g.right_limit - g.left_limit) * UNITS);-			extent = (int16) (lsb + (xmax - xmin) * UNITS);+			lsb = (int16) (-1 * (g.left_limit - xmin) * HeadTable.UNITS);+			advance = (int16) ((g.right_limit - g.left_limit) * HeadTable.UNITS);+			extent = (int16) (lsb + (xmax - xmin) * HeadTable.UNITS); 			rsb = (int16) (advance - extent); 						 			fd.add_u16 (advance);diff --git a/libbirdfont/OpenFontFormat/Kern.vala b/libbirdfont/OpenFontFormat/Kern.valaindex d5b07c0..70807e1 100644--- a/libbirdfont/OpenFontFormat/Kern.vala+++ b/libbirdfont/OpenFontFormat/Kern.vala@@ -177,7 +177,7 @@ class KernTable : Table { 					warning ("right glyph not found in kerning table"); 				} 				-				kern = new Kern (gid_left, (uint16)gid_right, (int16) (k.val * UNITS));+				kern = new Kern (gid_left, (uint16)gid_right, (int16) (k.val * HeadTable.UNITS)); 				 				fd.add_ushort (kern.left); 				fd.add_ushort (kern.right);diff --git a/libbirdfont/OpenFontFormat/OpenFontFormatWriter.vala b/libbirdfont/OpenFontFormat/OpenFontFormatWriter.valaindex c3af1f2..f5b229f 100644--- a/libbirdfont/OpenFontFormat/OpenFontFormatWriter.vala+++ b/libbirdfont/OpenFontFormat/OpenFontFormatWriter.vala@@ -14,8 +14,6 @@  namespace BirdFont { -const double UNITS = 10;- class OpenFontFormatWriter : Object  {  	DataOutputStream os;diff --git a/libbirdfont/OpenFontFormat/Os2Table.vala b/libbirdfont/OpenFontFormat/Os2Table.valaindex b294b9e..95e31d9 100644--- a/libbirdfont/OpenFontFormat/Os2Table.vala+++ b/libbirdfont/OpenFontFormat/Os2Table.vala@@ -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 * UNITS);-		descender = (int16) (-glyf_table.xmin  + font.base_line * UNITS);+		ascender = (int16) (glyf_table.xmax + font.base_line * HeadTable.UNITS);+		descender = (int16) (-glyf_table.xmin  + font.base_line * HeadTable.UNITS); 		 		fd.add_16 (ascender); // SHORT sTypoAscender 		fd.add_16 (descender); // SHORT sTypoDescender

Contact

Email: johan.mattsson.m@gmail.com
Mastodon: typo.social/@birdfont
GitHub: johanmattssonm
LinkedIn: johan-mattsson-2ab324112