HB_OT_ACCELERATOR (OT, cmap)
HB_OT_ACCELERATOR (OT, hmtx)
HB_OT_ACCELERATOR (OT, post)
-HB_OT_TABLE (OT, kern)
HB_OT_ACCELERATOR (OT, name)
HB_OT_TABLE (OT, OS2)
HB_OT_TABLE (OT, STAT)
HB_OT_TABLE (OT, avar)
HB_OT_TABLE (OT, MVAR)
+/* Legacy kern. */
+#ifndef HB_NO_OT_KERN
+HB_OT_TABLE (OT, kern)
+#endif
+
/* OpenType shaping. */
HB_OT_ACCELERATOR (OT, GDEF)
HB_OT_ACCELERATOR (OT, GSUB)
* kern
*/
+#ifndef HB_NO_OT_KERN
/**
* hb_ot_layout_has_kerning:
* @face: The #hb_face_t to work on
return face->table.kern->has_data ();
}
-
/**
* hb_ot_layout_has_machine_kerning:
* @face: The #hb_face_t to work on
return face->table.kern->has_state_machine ();
}
-
/**
* hb_ot_layout_has_cross_kerning:
* @face: The #hb_face_t to work on
kern.apply (&c);
}
+#endif
/*
plan.apply_kerx = true;
else
#endif
+#ifndef HB_NO_OT_KERN
if (hb_ot_layout_has_kerning (face))
plan.apply_kern = true;
+#endif
}
plan.zero_marks = script_zero_marks &&
!plan.apply_kerx &&
- (!plan.apply_kern || !hb_ot_layout_has_machine_kerning (face));
+ (!plan.apply_kern
+#ifndef HB_NO_OT_KERN
+ || !hb_ot_layout_has_machine_kerning (face)
+#endif
+ );
plan.has_gpos_mark = !!plan.map.get_1_mask (HB_TAG ('m','a','r','k'));
plan.adjust_mark_positioning_when_zeroing = !plan.apply_gpos &&
!plan.apply_kerx &&
- (!plan.apply_kern || !hb_ot_layout_has_cross_kerning (face));
+ (!plan.apply_kern
+#ifndef HB_NO_OT_KERN
+ || !hb_ot_layout_has_cross_kerning (face)
+#endif
+ );
plan.fallback_mark_positioning = plan.adjust_mark_positioning_when_zeroing &&
script_fallback_mark_positioning;
else if (this->apply_kerx)
hb_aat_layout_position (this, font, buffer);
#endif
+#ifndef HB_NO_OT_KERN
else if (this->apply_kern)
hb_ot_layout_kern (this, font, buffer);
+#endif
else
_hb_ot_shape_fallback_kern (this, font, buffer);