Add map->substitute_closure()

This commit is contained in:
Behdad Esfahbod 2012-04-23 17:21:14 -04:00
parent 31081f7390
commit d2984a241e
2 changed files with 18 additions and 0 deletions

View File

@ -125,6 +125,9 @@ struct hb_ot_map_t
void *face_or_font,
hb_buffer_t *buffer) const;
HB_INTERNAL void substitute_closure (hb_face_t *face,
hb_glyph_map_t *glyphs) const;
hb_mask_t global_mask;
hb_tag_t chosen_script[2];

View File

@ -95,6 +95,21 @@ void hb_ot_map_t::apply (unsigned int table_index,
apply_lookup_func (face_or_font, buffer, lookups[table_index][i].index, lookups[table_index][i].mask);
}
void hb_ot_map_t::substitute_closure (hb_face_t *face,
hb_glyph_map_t *glyphs) const
{
unsigned int table_index = 0;
unsigned int i = 0;
for (unsigned int pause_index = 0; pause_index < pauses[table_index].len; pause_index++) {
const pause_map_t *pause = &pauses[table_index][pause_index];
for (; i < pause->num_lookups; i++)
hb_ot_layout_substitute_closure_lookup (face, glyphs, lookups[table_index][i].index);
}
for (; i < lookups[table_index].len; i++)
hb_ot_layout_substitute_closure_lookup (face, glyphs, lookups[table_index][i].index);
}
void hb_ot_map_builder_t::add_pause (unsigned int table_index, hb_ot_map_t::pause_func_t pause_func, void *user_data)
{