[HarfBuzz] harfbuzz: Branch 'master' - 3 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Thu Nov 22 22:32:28 UTC 2018


 src/hb-ot-shape.cc |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

New commits:
commit 199a0f7b41b691e371487fd569c0d0146da3c3f3
Author: Behdad Esfahbod <behdad at behdad.org>
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 <behdad at behdad.org>
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 <behdad at behdad.org>
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;


More information about the HarfBuzz mailing list