From 6314aa7da4204379cd3ebeeaa447a51fbd7ef7bc Mon Sep 17 00:00:00 2001 From: Qunxin Liu Date: Fri, 28 Oct 2022 10:44:48 -0700 Subject: [PATCH] [subset] add an experimental API that can override name strings for specified name_id --- src/gen-def.py | 1 + src/hb-ot-name-table.hh | 83 ++++++++++++++++++-- src/hb-ot-name.cc | 51 +----------- src/hb-subset-input.cc | 50 +++++++++++- src/hb-subset-input.hh | 3 +- src/hb-subset-plan.cc | 23 ++++++ src/hb-subset-plan.hh | 11 +++ src/hb-subset.h | 7 ++ test/api/fonts/nameID.override.expected.ttf | Bin 0 -> 167936 bytes test/api/test-subset-nameids.c | 35 +++++++++ 10 files changed, 208 insertions(+), 56 deletions(-) create mode 100644 test/api/fonts/nameID.override.expected.ttf diff --git a/src/gen-def.py b/src/gen-def.py index e751f524e..f6b98bfd2 100755 --- a/src/gen-def.py +++ b/src/gen-def.py @@ -23,6 +23,7 @@ if '--experimental-api' not in sys.argv: hb_subset_input_pin_axis_location hb_subset_input_pin_axis_to_default hb_subset_preprocess +hb_subset_input_override_name_table """.splitlines () symbols = [x for x in symbols if x not in experimental_symbols] symbols = "\n".join (symbols) diff --git a/src/hb-ot-name-table.hh b/src/hb-ot-name-table.hh index 1f2131ffc..b63559101 100644 --- a/src/hb-ot-name-table.hh +++ b/src/hb-ot-name-table.hh @@ -30,10 +30,55 @@ #include "hb-open-type.hh" #include "hb-ot-name-language.hh" #include "hb-aat-layout.hh" +#include "hb-utf.hh" namespace OT { +template +inline unsigned int +hb_ot_name_convert_utf (hb_bytes_t bytes, + unsigned int *text_size /* IN/OUT */, + typename out_utf_t::codepoint_t *text /* OUT */) +{ + unsigned int src_len = bytes.length / sizeof (typename in_utf_t::codepoint_t); + const typename in_utf_t::codepoint_t *src = (const typename in_utf_t::codepoint_t *) bytes.arrayZ; + const typename in_utf_t::codepoint_t *src_end = src + src_len; + + typename out_utf_t::codepoint_t *dst = text; + + hb_codepoint_t unicode; + const hb_codepoint_t replacement = HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT; + + if (text_size && *text_size) + { + (*text_size)--; /* Same room for NUL-termination. */ + const typename out_utf_t::codepoint_t *dst_end = text + *text_size; + + while (src < src_end && dst < dst_end) + { + const typename in_utf_t::codepoint_t *src_next = in_utf_t::next (src, src_end, &unicode, replacement); + typename out_utf_t::codepoint_t *dst_next = out_utf_t::encode (dst, dst_end, unicode); + if (dst_next == dst) + break; /* Out-of-room. */ + + dst = dst_next; + src = src_next; + } + + *text_size = dst - text; + *dst = 0; /* NUL-terminate. */ + } + + /* Accumulate length of rest. */ + unsigned int dst_len = dst - text; + while (src < src_end) + { + src = in_utf_t::next (src, src_end, &unicode, replacement); + dst_len += out_utf_t::encode_len (unicode); + } + return dst_len; +} #define entry_score var.u16[0] #define entry_index var.u16[1] @@ -97,12 +142,39 @@ struct NameRecord return UNSUPPORTED; } - NameRecord* copy (hb_serialize_context_t *c, const void *base) const + NameRecord* copy (hb_serialize_context_t *c, const void *base, + const hb_hashmap_t *name_table_overrides) const { TRACE_SERIALIZE (this); + auto snap = c->snapshot (); auto *out = c->embed (this); if (unlikely (!out)) return_trace (nullptr); - out->offset.serialize_copy (c, offset, base, 0, hb_serialize_context_t::Tail, length); + if (name_table_overrides->has (nameID)) { + hb_bytes_t name_bytes = name_table_overrides->get (nameID); + char *name_str_utf16_be = (char *) hb_calloc ((name_bytes.length + 1) * 4, 1); + unsigned text_size = hb_ot_name_convert_utf (name_bytes, nullptr, + (hb_utf16_be_t::codepoint_t *) name_str_utf16_be); + + text_size++; // needs to consider NULL terminator for use in hb_ot_name_convert_utf() + hb_ot_name_convert_utf (name_bytes, &text_size, + (hb_utf16_be_t::codepoint_t *) name_str_utf16_be); + + unsigned encoded_byte_len = text_size * hb_utf16_be_t::codepoint_t::static_size; + if (!encoded_byte_len || !c->check_assign (out->length, encoded_byte_len, HB_SERIALIZE_ERROR_INT_OVERFLOW)) { + c->revert (snap); + hb_free (name_str_utf16_be); + return_trace (nullptr); + } + + hb_bytes_t utf16_be_bytes (name_str_utf16_be, encoded_byte_len); + out->offset = 0; + c->push (); + utf16_be_bytes.copy (c); + c->add_link (out->offset, c->pop_pack (), hb_serialize_context_t::Tail, 0); + hb_free (name_str_utf16_be); + } else { + out->offset.serialize_copy (c, offset, base, 0, hb_serialize_context_t::Tail, length); + } return_trace (out); } @@ -216,7 +288,8 @@ struct name hb_requires (hb_is_source_of (Iterator, const NameRecord &))> bool serialize (hb_serialize_context_t *c, Iterator it, - const void *src_string_pool) + const void *src_string_pool, + const hb_hashmap_t *name_table_overrides) { TRACE_SERIALIZE (this); @@ -238,7 +311,7 @@ struct name records.qsort (); - c->copy_all (records, src_string_pool); + c->copy_all (records, src_string_pool, name_table_overrides); hb_free (records.arrayZ); @@ -267,7 +340,7 @@ struct name }) ; - name_prime->serialize (c->serializer, it, std::addressof (this + stringOffset)); + name_prime->serialize (c->serializer, it, std::addressof (this + stringOffset), c->plan->name_table_overrides); return_trace (name_prime->count); } diff --git a/src/hb-ot-name.cc b/src/hb-ot-name.cc index 3051828ae..6adf1e8fb 100644 --- a/src/hb-ot-name.cc +++ b/src/hb-ot-name.cc @@ -64,52 +64,6 @@ hb_ot_name_list_names (hb_face_t *face, return (const hb_ot_name_entry_t *) name.names; } - -template -static inline unsigned int -hb_ot_name_convert_utf (hb_bytes_t bytes, - unsigned int *text_size /* IN/OUT */, - typename out_utf_t::codepoint_t *text /* OUT */) -{ - unsigned int src_len = bytes.length / sizeof (typename in_utf_t::codepoint_t); - const typename in_utf_t::codepoint_t *src = (const typename in_utf_t::codepoint_t *) bytes.arrayZ; - const typename in_utf_t::codepoint_t *src_end = src + src_len; - - typename out_utf_t::codepoint_t *dst = text; - - hb_codepoint_t unicode; - const hb_codepoint_t replacement = HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT; - - if (text_size && *text_size) - { - (*text_size)--; /* Save room for NUL-termination. */ - const typename out_utf_t::codepoint_t *dst_end = text + *text_size; - - while (src < src_end && dst < dst_end) - { - const typename in_utf_t::codepoint_t *src_next = in_utf_t::next (src, src_end, &unicode, replacement); - typename out_utf_t::codepoint_t *dst_next = out_utf_t::encode (dst, dst_end, unicode); - if (dst_next == dst) - break; /* Out-of-room. */ - - dst = dst_next; - src = src_next; - } - - *text_size = dst - text; - *dst = 0; /* NUL-terminate. */ - } - - /* Accumulate length of rest. */ - unsigned int dst_len = dst - text; - while (src < src_end) - { - src = in_utf_t::next (src, src_end, &unicode, replacement); - dst_len += out_utf_t::encode_len (unicode); - } - return dst_len; -} - template static inline unsigned int hb_ot_name_get_utf (hb_face_t *face, @@ -130,10 +84,10 @@ hb_ot_name_get_utf (hb_face_t *face, hb_bytes_t bytes = name.get_name (idx); if (width == 2) /* UTF16-BE */ - return hb_ot_name_convert_utf (bytes, text_size, text); + return OT::hb_ot_name_convert_utf (bytes, text_size, text); if (width == 1) /* ASCII */ - return hb_ot_name_convert_utf (bytes, text_size, text); + return OT::hb_ot_name_convert_utf (bytes, text_size, text); } if (text_size) @@ -227,5 +181,4 @@ hb_ot_name_get_utf32 (hb_face_t *face, return hb_ot_name_get_utf (face, name_id, language, text_size, text); } - #endif diff --git a/src/hb-subset-input.cc b/src/hb-subset-input.cc index fd250104b..a13129ce2 100644 --- a/src/hb-subset-input.cc +++ b/src/hb-subset-input.cc @@ -49,8 +49,9 @@ hb_subset_input_create_or_fail (void) set = hb_set_create (); input->axes_location = hb_hashmap_create (); + input->name_table_overrides = hb_hashmap_create (); - if (!input->axes_location || input->in_error ()) + if (!input->axes_location || !input->name_table_overrides || input->in_error ()) { hb_subset_input_destroy (input); return nullptr; @@ -248,6 +249,14 @@ hb_subset_input_destroy (hb_subset_input_t *input) hb_hashmap_destroy (input->axes_location); + if (input->name_table_overrides) + { + for (auto _ : input->name_table_overrides->values ()) + _.fini (); + } + + hb_hashmap_destroy (input->name_table_overrides); + hb_free (input); } @@ -478,4 +487,43 @@ hb_subset_preprocess (hb_face_t *source) return new_source; } + +/** + * hb_subset_input_override_name_table: + * @input: a #hb_subset_input_t object. + * @name_id: name_id of a nameRecord + * @name_str: pointer to name string new value or null to indicate should remove + * @str_len: the size of @name_str, or -1 if it is `NULL`-terminated + * + * Override the name string of a nameRecord with specified name_id + * Since: EXPERIMENTAL + **/ +HB_EXTERN void +hb_subset_input_override_name_table (hb_subset_input_t *input, + hb_ot_name_id_t name_id, + const char *name_str, + int str_len /* -1 means nul-terminated */) +{ + if (!name_str) + { + hb_set_del (hb_subset_input_set(input, HB_SUBSET_SETS_NAME_ID), name_id); + return; + } + + if (str_len == -1) + str_len = strlen (name_str); + + if (!str_len) + { + hb_set_del (hb_subset_input_set(input, HB_SUBSET_SETS_NAME_ID), name_id); + return; + } + + char *override_name = (char *) hb_malloc (str_len); + if (unlikely (!override_name)) return; + + strncpy (override_name, name_str, str_len); + input->name_table_overrides->set (name_id, hb_bytes_t (override_name, str_len)); +} + #endif diff --git a/src/hb-subset-input.hh b/src/hb-subset-input.hh index dabb4918f..8e8cf5402 100644 --- a/src/hb-subset-input.hh +++ b/src/hb-subset-input.hh @@ -61,6 +61,7 @@ struct hb_subset_input_t unsigned flags; bool attach_accelerator_data = false; hb_hashmap_t *axes_location; + hb_hashmap_t *name_table_overrides; inline unsigned num_sets () const { @@ -80,7 +81,7 @@ struct hb_subset_input_t return true; } - return axes_location->in_error (); + return axes_location->in_error () || name_table_overrides->in_error (); } }; diff --git a/src/hb-subset-plan.cc b/src/hb-subset-plan.cc index 9cf7c9e43..81fc56a3f 100644 --- a/src/hb-subset-plan.cc +++ b/src/hb-subset-plan.cc @@ -848,6 +848,29 @@ hb_subset_plan_create_or_fail (hb_face_t *face, plan->check_success (plan->vmtx_map = hb_hashmap_create> ()); plan->check_success (plan->hmtx_map = hb_hashmap_create> ()); + plan->check_success (plan->name_table_overrides = hb_hashmap_create ()); + if (plan->name_table_overrides && input->name_table_overrides) + { + for (auto _ : *input->name_table_overrides) + { + unsigned name_id = _.first; + hb_bytes_t name_bytes = _.second; + unsigned len = name_bytes.length; + + char *name_str = (char *) hb_malloc (len); + if (unlikely (!plan->check_success (name_str))) + { + for (auto bytes : plan->name_table_overrides->values ()) + bytes.fini (); + break; + } + + strncpy (name_str, name_bytes.arrayZ, len); + plan->name_table_overrides->set (name_id, hb_bytes_t (name_str, len)); + } + } + + void* accel = hb_face_get_user_data(face, hb_subset_accelerator_t::user_data_key()); plan->attach_accelerator_data = input->attach_accelerator_data; diff --git a/src/hb-subset-plan.hh b/src/hb-subset-plan.hh index 15fabba9c..2e1997a18 100644 --- a/src/hb-subset-plan.hh +++ b/src/hb-subset-plan.hh @@ -87,6 +87,13 @@ struct hb_subset_plan_t hb_hashmap_destroy (vmtx_map); hb_hashmap_destroy (layout_variation_idx_delta_map); + if (name_table_overrides) + { + for (auto _ : name_table_overrides->values ()) + _.fini (); + } + hb_hashmap_destroy (name_table_overrides); + if (user_axes_location) { hb_object_destroy (user_axes_location); @@ -191,6 +198,10 @@ struct hb_subset_plan_t //vmtx metrics map: new gid->(advance, lsb) hb_hashmap_t> *vmtx_map; + // name table overrides map: name_id->name string new value or None + // to indicate should remove + hb_hashmap_t *name_table_overrides; + const hb_subset_accelerator_t* accelerator; public: diff --git a/src/hb-subset.h b/src/hb-subset.h index 6a2c5f611..7ea965924 100644 --- a/src/hb-subset.h +++ b/src/hb-subset.h @@ -28,6 +28,7 @@ #define HB_SUBSET_H #include "hb.h" +#include "hb-ot.h" HB_BEGIN_DECLS @@ -184,6 +185,12 @@ hb_subset_input_pin_axis_location (hb_subset_input_t *input, HB_EXTERN hb_face_t * hb_subset_preprocess (hb_face_t *source); +HB_EXTERN void +hb_subset_input_override_name_table (hb_subset_input_t *input, + hb_ot_name_id_t name_id, + const char *name_str, + int str_len); + #endif HB_EXTERN hb_face_t * diff --git a/test/api/fonts/nameID.override.expected.ttf b/test/api/fonts/nameID.override.expected.ttf new file mode 100644 index 0000000000000000000000000000000000000000..14172bbcafe34da31ec1dba88015568985fd0b34 GIT binary patch literal 167936 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 nQXqO+qHQ{Lv4zCkF!A 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 z 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 literal 0 HcmV?d00001 diff --git a/test/api/test-subset-nameids.c b/test/api/test-subset-nameids.c index b58a86c91..5874aaad1 100644 --- a/test/api/test-subset-nameids.c +++ b/test/api/test-subset-nameids.c @@ -67,6 +67,38 @@ test_subset_nameids_with_dup_strs (void) hb_face_destroy (face_expected); } +#ifdef HB_EXPERIMENTAL_API +static void +test_subset_name_overrides (void) +{ + hb_face_t *face_origin = hb_test_open_font_file ("fonts/nameID.origin.ttf"); + hb_face_t *face_expected = hb_test_open_font_file ("fonts/nameID.override.expected.ttf"); + + char str1[] = "Roboto Test"; + char str2[] = "Bold"; + char str6[] = "Roboto-Bold"; + + hb_set_t *name_ids = hb_set_create(); + hb_face_t *face_subset; + hb_set_add_range (name_ids, 0, 15); + + hb_subset_input_t *subset_input = hb_subset_test_create_input_from_nameids (name_ids); + hb_subset_input_override_name_table (subset_input, 1, str1, -1); + hb_subset_input_override_name_table (subset_input, 2, str2, 4); + hb_subset_input_override_name_table (subset_input, 6, str6, -1); + hb_subset_input_override_name_table (subset_input, 14, NULL, -1); + + face_subset = hb_subset_test_create_subset (face_origin, subset_input); + hb_set_destroy (name_ids); + + hb_subset_test_check (face_expected, face_subset, HB_TAG ('n','a','m','e')); + + hb_face_destroy (face_subset); + hb_face_destroy (face_origin); + hb_face_destroy (face_expected); +} +#endif + int main (int argc, char **argv) { @@ -74,6 +106,9 @@ main (int argc, char **argv) hb_test_add (test_subset_nameids); hb_test_add (test_subset_nameids_with_dup_strs); +#ifdef HB_EXPERIMENTAL_API + hb_test_add (test_subset_name_overrides); +#endif return hb_test_run(); }