Commit 4887184
Set canvas size
Changed files (4)
modifiedlibbirdfont/Glyph.valamodifiedlibbirdfont/Path.valamodifiedlibbirdfont/PointConverter.valamodifiedlibbirdfont/SpacingTab.vala
Diff
@@ -103,6 +103,9 @@ public class Glyph : FontDisplay { /** Cache for Cairo rendering */ HashMap<string, Surface> glyph_cache = new HashMap<string, Surface> (); + public const double CANVAS_MIN = -10000;+ public const double CANVAS_MAX = 10000;+ public Glyph (string name, unichar unichar_code = 0) { this.name = name; this.unichar_code = unichar_code;@@ -195,15 +198,16 @@ public class Glyph : FontDisplay { return false; } - x1 = double.MAX;- x2 = double.MIN;- y1 = double.MAX;- y2 = double.MIN;+ x1 = CANVAS_MAX;+ x2 = CANVAS_MIN;+ y1 = CANVAS_MAX;+ y2 = CANVAS_MIN; foreach (Path p in path_list) { p.update_region_boundaries ();- - if (p.points.size > 0) {++ if (p.points.size > 1) {+ if (p.xmin < x1) { x1 = p.xmin; }@@ -493,9 +497,6 @@ public class Glyph : FontDisplay { double x1, y1, x2, y2; if (boundaries (out x1, out y1, out x2, out y2)) {- if (get_name () == "g") {- print (@"G: $right_limit - $x2 left_limit - x2\n");- } return right_limit - x2; } else { return right_limit - left_limit;@@ -1968,10 +1968,10 @@ public class Path { return; } - minx = double.MAX;- miny = double.MAX;- maxx = double.MIN;- maxy = double.MIN;+ minx = Glyph.CANVAS_MAX;+ miny = Glyph.CANVAS_MAX;+ maxx = Glyph.CANVAS_MIN;+ maxy = Glyph.CANVAS_MIN; x0 = 0; y0 = 0; @@ -145,8 +145,8 @@ public class PointConverter { return; } - max_d = double.MIN;- min_d = double.MAX;+ max_d = Glyph.CANVAS_MIN;+ min_d = Glyph.CANVAS_MAX; Path.all_of (a0, a1, (xa, ya, ta) => { min_d = double.MAX;@@ -218,7 +218,7 @@ public class SpacingTab : KerningDisplay { l = text_input_glyph.get_left_side_bearing (); - if (Math.fabs (r) < 0.001) {+ if (Math.fabs (l) < 0.001) { l = 0; }