[aat/morx] Implement language-specific forms
Test on Mac with, eg. $ hb-view /Library/Fonts/BigCaslon.ttf -u 107 vs $ hb-view /Library/Fonts/BigCaslon.ttf -u 107 --language pl Fixes https://github.com/harfbuzz/harfbuzz/issues/1373
This commit is contained in:
parent
d8574b44cc
commit
2124ad8906
|
@ -980,6 +980,13 @@ struct Chain
|
||||||
setting = HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_SMALL_CAPS;
|
setting = HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_SMALL_CAPS;
|
||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
|
else if (type == HB_AAT_LAYOUT_FEATURE_TYPE_LANGUAGE_TAG_TYPE && setting &&
|
||||||
|
/* TODO: Rudimentary language matching. */
|
||||||
|
map->face->table.ltag->get_language (setting - 1) == map->props.language)
|
||||||
|
{
|
||||||
|
flags &= feature.disableFlags;
|
||||||
|
flags |= feature.enableFlags;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return flags;
|
return flags;
|
||||||
|
|
|
@ -52,8 +52,9 @@ struct hb_aat_map_builder_t
|
||||||
public:
|
public:
|
||||||
|
|
||||||
HB_INTERNAL hb_aat_map_builder_t (hb_face_t *face_,
|
HB_INTERNAL hb_aat_map_builder_t (hb_face_t *face_,
|
||||||
const hb_segment_properties_t *props_ HB_UNUSED) :
|
const hb_segment_properties_t *props_) :
|
||||||
face (face_) {}
|
face (face_),
|
||||||
|
props (*props_) {}
|
||||||
|
|
||||||
HB_INTERNAL void add_feature (hb_tag_t tag, unsigned int value=1);
|
HB_INTERNAL void add_feature (hb_tag_t tag, unsigned int value=1);
|
||||||
|
|
||||||
|
@ -87,6 +88,7 @@ struct hb_aat_map_builder_t
|
||||||
|
|
||||||
public:
|
public:
|
||||||
hb_face_t *face;
|
hb_face_t *face;
|
||||||
|
hb_segment_properties_t props;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
hb_sorted_vector_t<feature_info_t> features;
|
hb_sorted_vector_t<feature_info_t> features;
|
||||||
|
|
Loading…
Reference in New Issue