Use Coverage digests in would_apply
This commit is contained in:
parent
6c459c8fef
commit
22148b8c4a
|
@ -1170,6 +1170,7 @@ struct SubstLookup : Lookup
|
|||
|
||||
inline bool would_apply (hb_would_apply_context_t *c) const
|
||||
{
|
||||
if (!c->digest.may_have (c->first)) return false;
|
||||
unsigned int lookup_type = get_type ();
|
||||
unsigned int count = get_subtable_count ();
|
||||
for (unsigned int i = 0; i < count; i++)
|
||||
|
|
|
@ -77,14 +77,18 @@ struct hb_would_apply_context_t
|
|||
hb_face_t *face;
|
||||
hb_codepoint_t first;
|
||||
hb_codepoint_t second;
|
||||
const hb_set_digest_t digest;
|
||||
unsigned int len;
|
||||
unsigned int debug_depth;
|
||||
|
||||
hb_would_apply_context_t (hb_face_t *face_,
|
||||
hb_codepoint_t first_,
|
||||
hb_codepoint_t second_ = -1) :
|
||||
hb_codepoint_t second_,
|
||||
const hb_set_digest_t *digest_
|
||||
) :
|
||||
face (face_),
|
||||
first (first_), second (second_), len (second == (hb_codepoint_t) -1 ? 1 : 2),
|
||||
digest (*digest_),
|
||||
debug_depth (0) {};
|
||||
};
|
||||
|
||||
|
|
|
@ -406,7 +406,7 @@ hb_ot_layout_would_substitute_lookup (hb_face_t *face,
|
|||
unsigned int lookup_index)
|
||||
{
|
||||
if (unlikely (glyphs_length < 1 || glyphs_length > 2)) return false;
|
||||
hb_would_apply_context_t c (face, glyphs[0], glyphs_length == 2 ? glyphs[1] : -1);
|
||||
hb_would_apply_context_t c (face, glyphs[0], glyphs_length == 2 ? glyphs[1] : -1, NULL);
|
||||
return _get_gsub (face).would_substitute_lookup (&c, lookup_index);
|
||||
}
|
||||
|
||||
|
@ -417,7 +417,7 @@ hb_ot_layout_would_substitute_lookup_fast (hb_face_t *face,
|
|||
unsigned int lookup_index)
|
||||
{
|
||||
if (unlikely (glyphs_length < 1 || glyphs_length > 2)) return false;
|
||||
hb_would_apply_context_t c (face, glyphs[0], glyphs_length == 2 ? glyphs[1] : -1);
|
||||
hb_would_apply_context_t c (face, glyphs[0], glyphs_length == 2 ? glyphs[1] : -1, &hb_ot_layout_from_face (face)->gsub_digests[lookup_index]);
|
||||
return hb_ot_layout_from_face (face)->gsub->would_substitute_lookup (&c, lookup_index);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue