[repacker] Update repacker api method to take a table tag.
This is needed to allow table specific optimizations to be performed during repacking.
This commit is contained in:
parent
28c02b3768
commit
69913e012e
|
@ -25,18 +25,24 @@
|
|||
#include "hb-repacker.hh"
|
||||
|
||||
#ifdef HB_EXPERIMENTAL_API
|
||||
|
||||
/**
|
||||
* hb_subset_repack_or_fail:
|
||||
* @table_tag: tag of the table being packed, needed to allow table specific optimizations.
|
||||
* @hb_objects: raw array of struct hb_object_t, which provides
|
||||
* object graph info
|
||||
* @num_hb_objs: number of hb_object_t in the hb_objects array.
|
||||
*
|
||||
* Given the input object graph info, repack a table to eliminate
|
||||
* offset overflows. A nullptr is returned if the repacking attempt fails.
|
||||
* Table specific optimizations (eg. extension promotion in GSUB/GPOS) may be performed.
|
||||
* Passing HB_TAG_NONE will disable table specific optimizations.
|
||||
*
|
||||
* Since: EXPERIMENTAL
|
||||
**/
|
||||
hb_blob_t* hb_subset_repack_or_fail (hb_object_t* hb_objects, unsigned num_hb_objs)
|
||||
hb_blob_t* hb_subset_repack_or_fail (hb_tag_t table_tag,
|
||||
hb_object_t* hb_objects,
|
||||
unsigned num_hb_objs)
|
||||
{
|
||||
hb_vector_t<const hb_object_t *> packed;
|
||||
packed.alloc (num_hb_objs + 1);
|
||||
|
@ -45,7 +51,7 @@ hb_blob_t* hb_subset_repack_or_fail (hb_object_t* hb_objects, unsigned num_hb_ob
|
|||
packed.push (&(hb_objects[i]));
|
||||
|
||||
return hb_resolve_overflows (packed,
|
||||
HB_OT_TAG_GSUB,
|
||||
table_tag,
|
||||
20,
|
||||
true);
|
||||
}
|
||||
|
|
|
@ -70,7 +70,8 @@ struct hb_object_t
|
|||
typedef struct hb_object_t hb_object_t;
|
||||
|
||||
HB_EXTERN hb_blob_t*
|
||||
hb_subset_repack_or_fail (hb_object_t* hb_objects,
|
||||
hb_subset_repack_or_fail (hb_tag_t table_tag,
|
||||
hb_object_t* hb_objects,
|
||||
unsigned num_hb_objs);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue