[kerx] Don't loop over kerning subtables if kerning disabled
This commit is contained in:
parent
38a7a8a89e
commit
60f86d32d7
|
@ -59,6 +59,9 @@ struct KerxSubTableFormat0
|
|||
{
|
||||
TRACE_APPLY (this);
|
||||
|
||||
if (!c->plan->requested_kerning)
|
||||
return false;
|
||||
|
||||
hb_kern_machine_t<KerxSubTableFormat0> machine (*this);
|
||||
|
||||
machine.kern (c->font, c->buffer, c->plan->kern_mask);
|
||||
|
@ -85,6 +88,9 @@ struct KerxSubTableFormat1
|
|||
{
|
||||
TRACE_APPLY (this);
|
||||
|
||||
if (!c->plan->requested_kerning)
|
||||
return false;
|
||||
|
||||
/* TODO */
|
||||
|
||||
return_trace (true);
|
||||
|
@ -123,6 +129,9 @@ struct KerxSubTableFormat2
|
|||
{
|
||||
TRACE_APPLY (this);
|
||||
|
||||
if (!c->plan->requested_kerning)
|
||||
return false;
|
||||
|
||||
accelerator_t accel (*this,
|
||||
c->sanitizer.end,
|
||||
c->face->get_num_glyphs ());
|
||||
|
@ -203,6 +212,9 @@ struct KerxSubTableFormat6
|
|||
{
|
||||
TRACE_APPLY (this);
|
||||
|
||||
if (!c->plan->requested_kerning)
|
||||
return false;
|
||||
|
||||
/* TODO */
|
||||
|
||||
return_trace (true);
|
||||
|
|
|
@ -71,7 +71,7 @@ hb_ot_shape_planner_t::compile (hb_ot_shape_plan_t &plan,
|
|||
HB_TAG ('k','e','r','n') : HB_TAG ('v','k','r','n');
|
||||
plan.kern_mask = plan.map.get_mask (kern_tag);
|
||||
|
||||
bool kerning_requested = !!plan.kern_mask;
|
||||
plan.requested_kerning = !!plan.kern_mask;
|
||||
bool has_gpos_kern = plan.map.get_feature_index (1, kern_tag) != HB_OT_LAYOUT_NO_FEATURE_INDEX;
|
||||
bool disable_gpos = plan.shaper->gpos_tag &&
|
||||
plan.shaper->gpos_tag != plan.map.chosen_script[1];
|
||||
|
@ -100,7 +100,7 @@ hb_ot_shape_planner_t::compile (hb_ot_shape_plan_t &plan,
|
|||
else if (hb_aat_layout_has_positioning (face))
|
||||
plan.apply_kerx = true;
|
||||
|
||||
if (kerning_requested)
|
||||
if (plan.requested_kerning)
|
||||
{
|
||||
if (plan.apply_kerx)
|
||||
;/* kerx supercedes kern. */
|
||||
|
|
|
@ -43,6 +43,7 @@ struct hb_ot_shape_plan_t
|
|||
hb_mask_t rtlm_mask, frac_mask, numr_mask, dnom_mask;
|
||||
hb_mask_t kern_mask;
|
||||
|
||||
bool requested_kerning : 1;
|
||||
bool has_frac : 1;
|
||||
bool has_gpos_mark : 1;
|
||||
bool fallback_glyph_classes : 1;
|
||||
|
|
Loading…
Reference in New Issue