Shuffle code around
This commit is contained in:
parent
bde5e3959c
commit
7ceadbe981
|
@ -31,44 +31,12 @@
|
||||||
#include "hb-ot-layout-private.hh"
|
#include "hb-ot-layout-private.hh"
|
||||||
|
|
||||||
|
|
||||||
void
|
void hb_ot_map_t::collect_lookups (unsigned int table_index, hb_set_t *lookups_out) const
|
||||||
hb_ot_map_builder_t::add_lookups (hb_ot_map_t &m,
|
|
||||||
hb_face_t *face,
|
|
||||||
unsigned int table_index,
|
|
||||||
unsigned int feature_index,
|
|
||||||
hb_mask_t mask,
|
|
||||||
bool auto_zwj)
|
|
||||||
{
|
{
|
||||||
unsigned int lookup_indices[32];
|
for (unsigned int i = 0; i < lookups[table_index].len; i++)
|
||||||
unsigned int offset, len;
|
hb_set_add (lookups_out, lookups[table_index][i].index);
|
||||||
unsigned int table_lookup_count;
|
|
||||||
|
|
||||||
table_lookup_count = hb_ot_layout_table_get_lookup_count (face, table_tags[table_index]);
|
|
||||||
|
|
||||||
offset = 0;
|
|
||||||
do {
|
|
||||||
len = ARRAY_LENGTH (lookup_indices);
|
|
||||||
hb_ot_layout_feature_get_lookups (face,
|
|
||||||
table_tags[table_index],
|
|
||||||
feature_index,
|
|
||||||
offset, &len,
|
|
||||||
lookup_indices);
|
|
||||||
|
|
||||||
for (unsigned int i = 0; i < len; i++)
|
|
||||||
{
|
|
||||||
if (lookup_indices[i] >= table_lookup_count)
|
|
||||||
continue;
|
|
||||||
hb_ot_map_t::lookup_map_t *lookup = m.lookups[table_index].push ();
|
|
||||||
if (unlikely (!lookup))
|
|
||||||
return;
|
|
||||||
lookup->mask = mask;
|
|
||||||
lookup->index = lookup_indices[i];
|
|
||||||
lookup->auto_zwj = auto_zwj;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
offset += len;
|
|
||||||
} while (len == ARRAY_LENGTH (lookup_indices));
|
|
||||||
}
|
|
||||||
|
|
||||||
hb_ot_map_builder_t::hb_ot_map_builder_t (hb_face_t *face_,
|
hb_ot_map_builder_t::hb_ot_map_builder_t (hb_face_t *face_,
|
||||||
const hb_segment_properties_t *props_)
|
const hb_segment_properties_t *props_)
|
||||||
|
@ -110,13 +78,46 @@ void hb_ot_map_builder_t::add_feature (hb_tag_t tag, unsigned int value,
|
||||||
info->stage[1] = current_stage[1];
|
info->stage[1] = current_stage[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
void hb_ot_map_t::collect_lookups (unsigned int table_index, hb_set_t *lookups_out) const
|
hb_ot_map_builder_t::add_lookups (hb_ot_map_t &m,
|
||||||
|
hb_face_t *face,
|
||||||
|
unsigned int table_index,
|
||||||
|
unsigned int feature_index,
|
||||||
|
hb_mask_t mask,
|
||||||
|
bool auto_zwj)
|
||||||
{
|
{
|
||||||
for (unsigned int i = 0; i < lookups[table_index].len; i++)
|
unsigned int lookup_indices[32];
|
||||||
hb_set_add (lookups_out, lookups[table_index][i].index);
|
unsigned int offset, len;
|
||||||
|
unsigned int table_lookup_count;
|
||||||
|
|
||||||
|
table_lookup_count = hb_ot_layout_table_get_lookup_count (face, table_tags[table_index]);
|
||||||
|
|
||||||
|
offset = 0;
|
||||||
|
do {
|
||||||
|
len = ARRAY_LENGTH (lookup_indices);
|
||||||
|
hb_ot_layout_feature_get_lookups (face,
|
||||||
|
table_tags[table_index],
|
||||||
|
feature_index,
|
||||||
|
offset, &len,
|
||||||
|
lookup_indices);
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
if (lookup_indices[i] >= table_lookup_count)
|
||||||
|
continue;
|
||||||
|
hb_ot_map_t::lookup_map_t *lookup = m.lookups[table_index].push ();
|
||||||
|
if (unlikely (!lookup))
|
||||||
|
return;
|
||||||
|
lookup->mask = mask;
|
||||||
|
lookup->index = lookup_indices[i];
|
||||||
|
lookup->auto_zwj = auto_zwj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
offset += len;
|
||||||
|
} while (len == ARRAY_LENGTH (lookup_indices));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void hb_ot_map_builder_t::add_pause (unsigned int table_index, hb_ot_map_t::pause_func_t pause_func)
|
void hb_ot_map_builder_t::add_pause (unsigned int table_index, hb_ot_map_t::pause_func_t pause_func)
|
||||||
{
|
{
|
||||||
stage_info_t *s = stages[table_index].push ();
|
stage_info_t *s = stages[table_index].push ();
|
||||||
|
|
Loading…
Reference in New Issue