src/hb-ot-shape.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
New commits: commit 199a0f7b41b691e371487fd569c0d0146da3c3f3 Author: Behdad Esfahbod <[email protected]> Date: Thu Nov 22 17:31:07 2018 -0500 [ot-shape] Simplify logic diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index 31fb3b7c..8d844807 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc @@ -149,9 +149,12 @@ hb_ot_shape_planner_t::compile (hb_ot_shape_plan_t &plan, plan.zero_marks = script_zero_marks && !plan.apply_kerx; plan.has_gpos_mark = !!plan.map.get_1_mask (HB_TAG ('m','a','r','k')); - bool has_kern_mark = plan.apply_kern && hb_ot_layout_has_cross_kerning (face); - plan.fallback_mark_positioning = script_fallback_mark_positioning && !plan.apply_gpos && !plan.apply_kerx && !has_kern_mark; - plan.adjust_mark_positioning_when_zeroing = !plan.apply_gpos && !plan.apply_kerx && !has_kern_mark; + plan.adjust_mark_positioning_when_zeroing = !plan.apply_gpos && + !plan.apply_kerx && + (!plan.apply_kern || !hb_ot_layout_has_cross_kerning (face)); + + plan.fallback_mark_positioning = plan.adjust_mark_positioning_when_zeroing && + script_fallback_mark_positioning; /* Currently we always apply trak. */ plan.apply_trak = plan.requested_tracking && hb_aat_layout_has_tracking (face); commit 014e4980ed9c8c473001abdb3a44121eb73fd50d Author: Behdad Esfahbod <[email protected]> Date: Thu Nov 22 16:21:49 2018 -0500 Move diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index a7ec6b34..31fb3b7c 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc @@ -146,10 +146,10 @@ hb_ot_shape_planner_t::compile (hb_ot_shape_plan_t &plan, plan.apply_kern = true; } - bool has_kern_mark = plan.apply_kern && hb_ot_layout_has_cross_kerning (face); plan.zero_marks = script_zero_marks && !plan.apply_kerx; plan.has_gpos_mark = !!plan.map.get_1_mask (HB_TAG ('m','a','r','k')); + bool has_kern_mark = plan.apply_kern && hb_ot_layout_has_cross_kerning (face); plan.fallback_mark_positioning = script_fallback_mark_positioning && !plan.apply_gpos && !plan.apply_kerx && !has_kern_mark; plan.adjust_mark_positioning_when_zeroing = !plan.apply_gpos && !plan.apply_kerx && !has_kern_mark; commit 62890dee18b88865a2014fb6a1322c1c9218bd49 Author: Behdad Esfahbod <[email protected]> Date: Thu Nov 22 16:20:29 2018 -0500 [aat] Zero mark advances if decided so even if there's cross-kerning Cross-kerning can only take care of positioning vertically. It doesn't adjust mark advance... diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index e87848d2..a7ec6b34 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc @@ -147,7 +147,7 @@ hb_ot_shape_planner_t::compile (hb_ot_shape_plan_t &plan, } bool has_kern_mark = plan.apply_kern && hb_ot_layout_has_cross_kerning (face); - plan.zero_marks = script_zero_marks && !plan.apply_kerx && !has_kern_mark; + plan.zero_marks = script_zero_marks && !plan.apply_kerx; plan.has_gpos_mark = !!plan.map.get_1_mask (HB_TAG ('m','a','r','k')); plan.fallback_mark_positioning = script_fallback_mark_positioning && !plan.apply_gpos && !plan.apply_kerx && !has_kern_mark; _______________________________________________ HarfBuzz mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/harfbuzz
