[ot-shape] Move code around
authorBehdad Esfahbod <behdad@behdad.org>
Wed, 14 Nov 2018 19:49:34 +0000 (14:49 -0500)
committerBehdad Esfahbod <behdad@behdad.org>
Thu, 15 Nov 2018 00:57:19 +0000 (19:57 -0500)
src/hb-aat-layout-common.hh
src/hb-aat-layout.cc
src/hb-aat-layout.hh
src/hb-ot-layout.cc
src/hb-ot-layout.hh
src/hb-ot-shape.cc
src/hb-ot-shape.hh

index adc7538..6572b26 100644 (file)
@@ -801,7 +801,7 @@ struct hb_aat_apply_context_t :
   static return_t default_return_value (void) { return false; }
   bool stop_sublookup_iteration (return_t r) const { return r; }
 
-  hb_ot_shape_plan_t *plan;
+  const hb_ot_shape_plan_t *plan;
   hb_font_t *font;
   hb_face_t *face;
   hb_buffer_t *buffer;
@@ -813,7 +813,7 @@ struct hb_aat_apply_context_t :
   unsigned int lookup_index;
   unsigned int debug_depth;
 
-  HB_INTERNAL hb_aat_apply_context_t (hb_ot_shape_plan_t *plan_,
+  HB_INTERNAL hb_aat_apply_context_t (const hb_ot_shape_plan_t *plan_,
                                      hb_font_t *font_,
                                      hb_buffer_t *buffer_,
                                      hb_blob_t *blob = const_cast<hb_blob_t *> (&Null(hb_blob_t)));
index 2e655ec..da6908a 100644 (file)
@@ -135,7 +135,7 @@ hb_aat_layout_find_feature_mapping (hb_tag_t tag)
  * hb_aat_apply_context_t
  */
 
-AAT::hb_aat_apply_context_t::hb_aat_apply_context_t (hb_ot_shape_plan_t *plan_,
+AAT::hb_aat_apply_context_t::hb_aat_apply_context_t (const hb_ot_shape_plan_t *plan_,
                                                     hb_font_t *font_,
                                                     hb_buffer_t *buffer_,
                                                     hb_blob_t *blob) :
@@ -202,7 +202,7 @@ hb_aat_layout_has_substitution (hb_face_t *face)
 }
 
 void
-hb_aat_layout_substitute (hb_ot_shape_plan_t *plan,
+hb_aat_layout_substitute (const hb_ot_shape_plan_t *plan,
                          hb_font_t *font,
                          hb_buffer_t *buffer)
 {
@@ -257,7 +257,7 @@ hb_aat_layout_has_positioning (hb_face_t *face)
 }
 
 void
-hb_aat_layout_position (hb_ot_shape_plan_t *plan,
+hb_aat_layout_position (const hb_ot_shape_plan_t *plan,
                        hb_font_t *font,
                        hb_buffer_t *buffer)
 {
@@ -280,7 +280,7 @@ hb_aat_layout_has_tracking (hb_face_t *face)
 }
 
 void
-hb_aat_layout_track (hb_ot_shape_plan_t *plan,
+hb_aat_layout_track (const hb_ot_shape_plan_t *plan,
                     hb_font_t *font,
                     hb_buffer_t *buffer)
 {
index 97935a0..1d34079 100644 (file)
@@ -60,7 +60,7 @@ HB_INTERNAL bool
 hb_aat_layout_has_substitution (hb_face_t *face);
 
 HB_INTERNAL void
-hb_aat_layout_substitute (hb_ot_shape_plan_t *plan,
+hb_aat_layout_substitute (const hb_ot_shape_plan_t *plan,
                          hb_font_t *font,
                          hb_buffer_t *buffer);
 
@@ -74,7 +74,7 @@ HB_INTERNAL bool
 hb_aat_layout_has_positioning (hb_face_t *face);
 
 HB_INTERNAL void
-hb_aat_layout_position (hb_ot_shape_plan_t *plan,
+hb_aat_layout_position (const hb_ot_shape_plan_t *plan,
                        hb_font_t *font,
                        hb_buffer_t *buffer);
 
@@ -82,7 +82,7 @@ HB_INTERNAL bool
 hb_aat_layout_has_tracking (hb_face_t *face);
 
 HB_INTERNAL void
-hb_aat_layout_track (hb_ot_shape_plan_t *plan,
+hb_aat_layout_track (const hb_ot_shape_plan_t *plan,
                     hb_font_t *font,
                     hb_buffer_t *buffer);
 
index ec2421e..092633c 100644 (file)
@@ -72,7 +72,7 @@ hb_ot_layout_has_cross_kerning (hb_face_t *face)
 }
 
 void
-hb_ot_layout_kern (hb_ot_shape_plan_t *plan,
+hb_ot_layout_kern (const hb_ot_shape_plan_t *plan,
                   hb_font_t *font,
                   hb_buffer_t  *buffer)
 {
index b218253..db85508 100644 (file)
@@ -52,7 +52,7 @@ HB_INTERNAL bool
 hb_ot_layout_has_cross_kerning (hb_face_t *face);
 
 HB_INTERNAL void
-hb_ot_layout_kern (hb_ot_shape_plan_t *plan,
+hb_ot_layout_kern (const hb_ot_shape_plan_t *plan,
                   hb_font_t *font,
                   hb_buffer_t  *buffer);
 
index a383b78..ba65e76 100644 (file)
@@ -181,6 +181,33 @@ hb_ot_shape_plan_t::fini (void)
   aat_map.fini ();
 }
 
+void
+hb_ot_shape_plan_t::substitute (hb_font_t   *font,
+                               hb_buffer_t *buffer) const
+{
+  if (unlikely (apply_morx))
+    hb_aat_layout_substitute (this, font, buffer);
+  else
+    map.substitute (this, font, buffer);
+}
+
+void
+hb_ot_shape_plan_t::position (hb_font_t   *font,
+                             hb_buffer_t *buffer) const
+{
+  if (this->apply_gpos)
+    map.position (this, font, buffer);
+  else if (this->apply_kerx)
+    hb_aat_layout_position (this, font, buffer);
+  else if (this->apply_kern)
+    hb_ot_layout_kern (this, font, buffer);
+  else
+    _hb_ot_shape_fallback_kern (this, font, buffer);
+
+  if (this->apply_trak)
+    hb_aat_layout_track (this, font, buffer);
+}
+
 
 static const hb_ot_map_feature_t
 common_features[] =
@@ -687,10 +714,7 @@ hb_ot_substitute_complex (const hb_ot_shape_context_t *c)
   if (c->plan->fallback_glyph_classes)
     hb_synthesize_glyph_classes (c->buffer);
 
-  if (unlikely (c->plan->apply_morx))
-    hb_aat_layout_substitute (c->plan, c->font, c->buffer);
-  else
-    c->plan->substitute (c->font, buffer);
+  c->plan->substitute (c->font, buffer);
 }
 
 static inline void
@@ -825,17 +849,7 @@ hb_ot_position_complex (const hb_ot_shape_context_t *c)
        break;
     }
 
-  if (c->plan->apply_gpos)
-    c->plan->position (c->font, c->buffer);
-  else if (c->plan->apply_kerx)
-    hb_aat_layout_position (c->plan, c->font, c->buffer);
-  else if (c->plan->apply_kern)
-    hb_ot_layout_kern (c->plan, c->font, c->buffer);
-  else
-    _hb_ot_shape_fallback_kern (c->plan, c->font, c->buffer);
-
-  if (c->plan->apply_trak)
-    hb_aat_layout_track (c->plan, c->font, c->buffer);
+  c->plan->position (c->font, c->buffer);
 
   if (c->plan->zero_marks)
     switch (c->plan->shaper->zero_width_marks)
index b35f243..397634c 100644 (file)
@@ -84,7 +84,6 @@ struct hb_ot_shape_plan_t
   bool apply_morx : 1;
   bool apply_trak : 1;
 
-
   inline void collect_lookups (hb_tag_t table_tag, hb_set_t *lookups) const
   {
     unsigned int table_index;
@@ -95,12 +94,13 @@ struct hb_ot_shape_plan_t
     }
     map.collect_lookups (table_index, lookups);
   }
-  inline void substitute (hb_font_t *font, hb_buffer_t *buffer) const { map.substitute (this, font, buffer); }
-  inline void position (hb_font_t *font, hb_buffer_t *buffer) const { map.position (this, font, buffer); }
 
   HB_INTERNAL bool init0 (hb_face_t                     *face,
                          const hb_shape_plan_key_t     *key);
   HB_INTERNAL void fini (void);
+
+  HB_INTERNAL void substitute (hb_font_t *font, hb_buffer_t *buffer) const;
+  HB_INTERNAL void position (hb_font_t *font, hb_buffer_t *buffer) const;
 };
 
 struct hb_shape_plan_t;