Move add_lookups from map to map-builder
In prep for more changes.
This commit is contained in:
parent
26648cebcd
commit
bde5e3959c
|
@ -139,12 +139,6 @@ struct hb_ot_map_t
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
HB_INTERNAL void add_lookups (hb_face_t *face,
|
|
||||||
unsigned int table_index,
|
|
||||||
unsigned int feature_index,
|
|
||||||
hb_mask_t mask,
|
|
||||||
bool auto_zwj);
|
|
||||||
|
|
||||||
hb_mask_t global_mask;
|
hb_mask_t global_mask;
|
||||||
|
|
||||||
hb_prealloced_array_t<feature_map_t, 8> features;
|
hb_prealloced_array_t<feature_map_t, 8> features;
|
||||||
|
@ -182,7 +176,7 @@ struct hb_ot_map_builder_t
|
||||||
inline void add_gpos_pause (hb_ot_map_t::pause_func_t pause_func)
|
inline void add_gpos_pause (hb_ot_map_t::pause_func_t pause_func)
|
||||||
{ add_pause (1, pause_func); }
|
{ add_pause (1, pause_func); }
|
||||||
|
|
||||||
HB_INTERNAL void compile (struct hb_ot_map_t &m);
|
HB_INTERNAL void compile (hb_ot_map_t &m);
|
||||||
|
|
||||||
inline void finish (void) {
|
inline void finish (void) {
|
||||||
feature_infos.finish ();
|
feature_infos.finish ();
|
||||||
|
@ -194,6 +188,13 @@ struct hb_ot_map_builder_t
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
HB_INTERNAL void 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);
|
||||||
|
|
||||||
struct feature_info_t {
|
struct feature_info_t {
|
||||||
hb_tag_t tag;
|
hb_tag_t tag;
|
||||||
unsigned int seq; /* sequence#, used for stable sorting only */
|
unsigned int seq; /* sequence#, used for stable sorting only */
|
||||||
|
|
|
@ -32,7 +32,8 @@
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
hb_ot_map_t::add_lookups (hb_face_t *face,
|
hb_ot_map_builder_t::add_lookups (hb_ot_map_t &m,
|
||||||
|
hb_face_t *face,
|
||||||
unsigned int table_index,
|
unsigned int table_index,
|
||||||
unsigned int feature_index,
|
unsigned int feature_index,
|
||||||
hb_mask_t mask,
|
hb_mask_t mask,
|
||||||
|
@ -57,7 +58,7 @@ hb_ot_map_t::add_lookups (hb_face_t *face,
|
||||||
{
|
{
|
||||||
if (lookup_indices[i] >= table_lookup_count)
|
if (lookup_indices[i] >= table_lookup_count)
|
||||||
continue;
|
continue;
|
||||||
hb_ot_map_t::lookup_map_t *lookup = lookups[table_index].push ();
|
hb_ot_map_t::lookup_map_t *lookup = m.lookups[table_index].push ();
|
||||||
if (unlikely (!lookup))
|
if (unlikely (!lookup))
|
||||||
return;
|
return;
|
||||||
lookup->mask = mask;
|
lookup->mask = mask;
|
||||||
|
@ -268,14 +269,14 @@ hb_ot_map_builder_t::compile (hb_ot_map_t &m)
|
||||||
{
|
{
|
||||||
if (required_feature_index[table_index] != HB_OT_LAYOUT_NO_FEATURE_INDEX &&
|
if (required_feature_index[table_index] != HB_OT_LAYOUT_NO_FEATURE_INDEX &&
|
||||||
required_feature_stage[table_index] == stage)
|
required_feature_stage[table_index] == stage)
|
||||||
m.add_lookups (face, table_index,
|
add_lookups (m, face, table_index,
|
||||||
required_feature_index[table_index],
|
required_feature_index[table_index],
|
||||||
1 /* mask */,
|
1 /* mask */,
|
||||||
true /* auto_zwj */);
|
true /* auto_zwj */);
|
||||||
|
|
||||||
for (unsigned i = 0; i < m.features.len; i++)
|
for (unsigned i = 0; i < m.features.len; i++)
|
||||||
if (m.features[i].stage[table_index] == stage)
|
if (m.features[i].stage[table_index] == stage)
|
||||||
m.add_lookups (face, table_index,
|
add_lookups (m, face, table_index,
|
||||||
m.features[i].index[table_index],
|
m.features[i].index[table_index],
|
||||||
m.features[i].mask,
|
m.features[i].mask,
|
||||||
m.features[i].auto_zwj);
|
m.features[i].auto_zwj);
|
||||||
|
|
Loading…
Reference in New Issue