[subset] Add drop_ot_layout setting to subset input.

This commit is contained in:
Garret Rieger 2018-06-07 14:23:03 -07:00
parent 57badadb76
commit a5673da9be
6 changed files with 25 additions and 1 deletions

View File

@ -45,6 +45,7 @@ hb_subset_input_create_or_fail (void)
input->unicodes = hb_set_create ();
input->glyphs = hb_set_create ();
input->drop_ot_layout = true;
return input;
}
@ -117,3 +118,19 @@ hb_subset_input_drop_hints (hb_subset_input_t *subset_input)
{
return &subset_input->drop_hints;
}
/**
* hb_subset_input_drop_ot_layout:
* @subset_input: a subset_input.
*
* If enabled ot layout tables will be dropped as part of
* the subsetting operation. Currently this defaults to
* true.
*
* Since: 1.8.0
**/
HB_EXTERN hb_bool_t *
hb_subset_input_drop_ot_layout (hb_subset_input_t *subset_input)
{
return &subset_input->drop_ot_layout;
}

View File

@ -131,6 +131,7 @@ hb_subset_plan_create (hb_face_t *face,
hb_subset_plan_t *plan = hb_object_create<hb_subset_plan_t> ();
plan->drop_hints = input->drop_hints;
plan->drop_ot_layout = input->drop_ot_layout;
plan->unicodes = hb_set_create();
plan->glyphs.init();
plan->source = hb_face_reference (face);

View File

@ -41,6 +41,7 @@ struct hb_subset_plan_t
ASSERT_POD ();
hb_bool_t drop_hints;
hb_bool_t drop_ot_layout;
// For each cp that we'd like to retain maps to the corresponding gid.
hb_set_t *unicodes;

View File

@ -44,6 +44,7 @@ struct hb_subset_input_t {
hb_set_t *glyphs;
hb_bool_t drop_hints;
hb_bool_t drop_ot_layout;
/* TODO
*
* features

View File

@ -302,10 +302,11 @@ _should_drop_table(hb_subset_plan_t *plan, hb_tag_t tag)
case HB_TAG ('h', 'd', 'm', 'x'): /* hint table, fallthrough */
case HB_TAG ('V', 'D', 'M', 'X'): /* hint table, fallthrough */
return plan->drop_hints;
// Drop Layout Tables until subsetting is supported.
// Drop Layout Tables if requested.
case HB_TAG ('G', 'D', 'E', 'F'): /* temporary */
case HB_TAG ('G', 'P', 'O', 'S'): /* temporary */
case HB_TAG ('G', 'S', 'U', 'B'): /* temporary */
return plan->drop_ot_layout;
// Drop these tables below by default, list pulled
// from fontTools:
case HB_TAG ('B', 'A', 'S', 'E'):

View File

@ -71,6 +71,9 @@ hb_subset_input_glyph_set (hb_subset_input_t *subset_input);
HB_EXTERN hb_bool_t *
hb_subset_input_drop_hints (hb_subset_input_t *subset_input);
HB_EXTERN hb_bool_t *
hb_subset_input_drop_ot_layout (hb_subset_input_t *subset_input);
/* hb_subset() */
HB_EXTERN hb_face_t *
hb_subset (hb_face_t *source,