[API] Add hb_ot_layout_substitute_start/finish()
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 12 May 2011 02:33:13 +0000 (22:33 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Thu, 12 May 2011 02:33:13 +0000 (22:33 -0400)
src/hb-ot-layout.cc
src/hb-ot-layout.h

index 8398bba..0d34e11 100644 (file)
@@ -440,6 +440,14 @@ hb_ot_layout_has_substitution (hb_face_t *face)
   return &_get_gsub (face) != &Null(GSUB);
 }
 
+void
+hb_ot_layout_substitute_start (hb_buffer_t  *buffer)
+{
+  unsigned int count = buffer->len;
+  for (unsigned int i = 0; i < count; i++)
+    buffer->info[i].var1.u32 = buffer->info[i].var2.u32 = 0;
+}
+
 hb_bool_t
 hb_ot_layout_substitute_lookup (hb_face_t    *face,
                                hb_buffer_t  *buffer,
@@ -449,6 +457,11 @@ hb_ot_layout_substitute_lookup (hb_face_t    *face,
   return _get_gsub (face).substitute_lookup (face, buffer, lookup_index, mask);
 }
 
+void
+hb_ot_layout_substitute_finish (hb_buffer_t  *buffer)
+{
+}
+
 
 /*
  * GPOS
index a6dbc61..5257244 100644 (file)
@@ -165,12 +165,20 @@ hb_ot_layout_feature_get_lookup_indexes (hb_face_t    *face,
 hb_bool_t
 hb_ot_layout_has_substitution (hb_face_t *face);
 
+/* Should be called before all the substitute_lookup's are done. */
+void
+hb_ot_layout_substitute_start (hb_buffer_t  *buffer);
+
 hb_bool_t
 hb_ot_layout_substitute_lookup (hb_face_t    *face,
                                hb_buffer_t  *buffer,
                                unsigned int  lookup_index,
                                hb_mask_t     mask);
 
+/* Should be called after all the substitute_lookup's are done */
+void
+hb_ot_layout_substitute_finish (hb_buffer_t  *buffer);
+
 /*
  * GPOS
  */