src/hb-ot-layout.cc


Log

Author Commit Date CI Message
Behdad Esfahbod 3a4e5dd4 2018-10-29T18:05:25 Remove a few unnecessary hb_auto_t<>'s See a85641446c30247c4e948263f0f8c1147ed4efb9
Behdad Esfahbod 6ce49a92 2018-10-28T08:26:30 [name] Change hb_name_id_t back to unsigned int https://github.com/harfbuzz/harfbuzz/commit/d941f66c75fe26f909b1ba248535cc372bbde851#commitcomment-31076011
Behdad Esfahbod 80d9a427 2018-10-27T04:58:32 [docs] Document remaining sections
Ebrahim Byagowi 524e854c 2018-10-27T15:04:43 Merge pull request #1318 from ebraminio/png Add a non-hooked _png _svg get emoji blob
Behdad Esfahbod d941f66c 2018-10-27T02:55:52 [name] Make hb_name_id_t be the enum This is like hb_script_t. We had this exposed as unsigned int since 2.0.0 release in two APIs, as well as hb_ot_layout_get_size_params() from earlier. But since no one uses those (right?!), let's just fix this now.
Behdad Esfahbod 4025ad80 2018-10-27T02:35:06 Document new API
Ebrahim Byagowi c7a4e3df 2018-10-23T18:00:48 [svg] Add public API * hb_ot_color_has_svg * hb_ot_color_glyph_svg_create_blob
Behdad Esfahbod e98af6d1 2018-10-25T22:25:29 [layout] Try to speed up collect_lookups some more Barely made a dent :(.
Behdad Esfahbod eb44bfc8 2018-10-25T21:42:19 [layout] Memoize collect_features Fixes https://github.com/harfbuzz/harfbuzz/pull/1317 Fixes https://oss-fuzz.com/v2/testcase-detail/6543700493598720
Behdad Esfahbod 941600a9 2018-10-25T21:26:08 [layout] Add hb_collect_features_context_t Towards https://github.com/harfbuzz/harfbuzz/pull/1317
Behdad Esfahbod c237cdfc 2018-10-25T21:17:30 [lookup] Fold another function inline
Behdad Esfahbod fe5520dd 2018-10-25T20:58:34 [layout] More prep work to memoize collect_features() work
Behdad Esfahbod e8e67503 2018-10-25T20:48:20 [lookup] More prep work for memoizing collect_features https://github.com/harfbuzz/harfbuzz/pull/1317
Behdad Esfahbod 96828b97 2018-10-25T20:34:29 [layout] Minor We were returning the accelerator's lookup count. Returns table's. They are the same except for OOM cases. Just shorter code.
Behdad Esfahbod 73449cd2 2018-10-25T20:32:05 [layout] Fold one function inline Preparation for fixing https://github.com/harfbuzz/harfbuzz/pull/1317
Behdad Esfahbod a5ad8c65 2018-10-20T16:52:55 [docs] More fixes
Behdad Esfahbod 3d9a0306 2018-10-18T05:58:17 2.0.0
HinTak 49bdb544 2018-10-17T00:36:04 typo in gobject annotation - "in/out" should be "inout" "in/out" should be "inout"
Ebrahim Byagowi 63109432 2018-10-13T14:00:05 Cosmetic and minor changes
Behdad Esfahbod c0a6814b 2018-10-12T16:05:56 Touch up new API New API: +hb_ot_layout_feature_get_name_ids() +hb_ot_layout_feature_get_characters()
Ebrahim Byagowi dc49bd8d 2018-10-12T03:00:59 Add two APIs for getting stylistic set labels * hb_ot_layout_feature_get_characters * hb_ot_layout_feature_get_name_ids However HarfBuzz currently doesn't expose an API for retrieving the actual information associated with NameId from the `name` table and that should be done separately.
Behdad Esfahbod 8061664a 2018-10-11T14:16:55 Add doc stubs for recently added API Thanks to David Corbett who revamped our script and language processing and implemented full BCP 47 support. https://github.com/harfbuzz/harfbuzz/pull/730 New API: +hb_ot_layout_table_select_script() +hb_ot_layout_script_select_language() +HB_OT_MAX_TAGS_PER_SCRIPT +HB_OT_MAX_TAGS_PER_LANGUAGE +hb_ot_tags_from_script_and_language() +hb_ot_tags_to_script_and_language() Deprecated API: -hb_ot_layout_table_choose_script() -hb_ot_layout_script_find_language() -hb_ot_tags_from_script() -hb_ot_tag_from_language()
Behdad Esfahbod cf975ac6 2018-10-11T14:07:44 Remove use of deprecated function
David Corbett 91067716 2017-12-08T11:21:14 Refactor the selection of script and language tags The old hb-ot-tag.cc functions, `hb_ot_tags_from_script` and `hb_ot_tag_from_language`, are now wrappers around a new function: `hb_ot_tags`. It converts a script and a language to arrays of script tags and language tags. This will make it easier to add new script tags to scripts, like 'dev3'. It also allows for language fallback chains; nothing produces more than one language yet though. Where the old functions return the default tags 'DFLT' and 'dflt', `hb_ot_tags` returns an empty array. The caller is responsible for using the default tag in that case. The new function also adds a new private use subtag syntax for script overrides: "x-hbscabcd" requests a script tag of 'abcd'. The old hb-ot-layout.cc functions,`hb_ot_layout_table_choose_script` and `hb_ot_layout_script_find_language` are now wrappers around the new functions `hb_ot_layout_table_select_script` and `hb_ot_layout_script_select_language`. They are essentially the same as the old ones plus a tag count parameter. Closes #495.
Behdad Esfahbod e78549ed 2018-10-10T11:54:48 Move apply down into subtables accel
Behdad Esfahbod 78c09bf2 2018-10-10T11:50:46 Move subtable array into lookup accel
Behdad Esfahbod 97e5913d 2018-10-10T11:41:05 Move more code
Behdad Esfahbod c8f2d933 2018-10-10T11:36:28 Move code In preparation to move add per-subtable set digests...
Behdad Esfahbod a5195881 2018-10-08T23:57:45 Apply TrueType/OpenType kern table when GPOS kern feature is not available Fixes https://github.com/harfbuzz/harfbuzz/issues/250
Behdad Esfahbod 606bf574 2018-09-16T19:33:48 Revert forcing use of single-parameter static_assert() Some clang versions define static_assert as a macro apparently, so we cannot redefine it... This reverts commit 94bfea0ce6a7b4d5641c198d50751748a353df11. This reverts commit 4e62627831e7457ed60ff87712570065b14b200a.
Behdad Esfahbod 4e626278 2018-09-16T18:09:36 Enforce single-param static_assert() only So we don't accidentally break it again.
David Corbett b545e27d 2018-02-23T12:22:32 Don't seed the RNG from the contents of the buffer
David Corbett c2a75e07 2018-01-25T14:22:03 Implement 'rand'
Behdad Esfahbod fda994e1 2018-09-07T15:02:57 Use enum instead of "static const" in class scope Technically, static const needs an out-of-class definition. Eg: CXXLD libharfbuzz-subset.la Undefined symbols for architecture x86_64: "OT::FeatureVariationRecord::min_size", referenced from: bool OT::GSUBGPOS::subset<OT::PosLookup>(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o bool OT::GSUBGPOS::subset<OT::SubstLookup>(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o "OT::Record<OT::LangSys>::min_size", referenced from: OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o "OT::IntType<unsigned short, 2u>::min_size", referenced from: OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o OT::RecordListOf<OT::Feature>::subset(hb_subset_context_t*) const in libharfbuzz_subset_la-hb-subset.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status make[4]: *** [libharfbuzz-subset.la] Error 1 make[3]: *** [all-recursive] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Exited with code 2
Behdad Esfahbod fee0f41c 2018-08-28T18:27:41 Don't declare extern symbols as inline clang -O3 was completely removing _get_gdef(), causing link failure when needed from another compilation unit. Surprisingly, "extern inline" didn't fix it.
Behdad Esfahbod a2680680 2018-08-26T15:18:46 [ot-face] Remove tables_t. The face_data_t is what tables_t was
Behdad Esfahbod c624e18a 2018-08-26T09:19:20 [OT] Move code around
Behdad Esfahbod 39990946 2018-08-26T09:12:25 [OT] Use relaxed ops for recursing into GSUB/GPOS lookups again
Behdad Esfahbod d8c57e85 2018-08-26T09:03:31 [GDEF] Move code around
Behdad Esfahbod 4096fbe4 2018-08-26T01:25:54 [ot-face] Port GDEF to unified table accelerator model as well
Behdad Esfahbod b929100f 2018-08-26T01:15:47 [ot-face] Unify GSUB/GPOS accelerators in the table accelerator framework
Behdad Esfahbod d950022c 2018-08-25T23:06:37 Add hb-ot-face.cc/hh
Behdad Esfahbod c77ae408 2018-08-25T22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.
Behdad Esfahbod 1c6b3693 2018-08-15T20:12:25 [ot] Rename hb_ot_layout_t to hb_ot_face_data_t
Behdad Esfahbod b912fbea 2018-08-06T06:30:12 Remove most uses of direct comparison to Null objects
Behdad Esfahbod 74b4df2c 2018-08-03T16:57:40 [ot] Move GDEF into tables_t
Behdad Esfahbod 0271c7ab 2018-08-03T16:45:57 [ot] Move GSUB/GPOS into tables_t
Behdad Esfahbod f73d2775 2018-08-03T16:34:25 [ot] More shuffling Misc. table loading now properly automated.
Behdad Esfahbod 52fbd23d 2018-08-03T16:22:16 [ot] Minor
Behdad Esfahbod 6a0a298a 2018-08-02T23:13:19 [ot] Move code around
Behdad Esfahbod 5e718a75 2018-08-02T23:04:42 [ot] Use switch for checking for blacklisted GDEF tables Faster / more compact code.
Behdad Esfahbod b5cdf528 2018-08-02T22:56:42 [ot] In GDEF blacklisting logic, remove the glyph index check for Times Just blacklist based on table sizes like we do for other fonts.
Behdad Esfahbod ff7826e9 2018-08-02T01:27:40 Reduce storage by sharing face amongst lazy_loaders
Behdad Esfahbod ed7b2e58 2018-08-01T23:59:09 Remove OT namespace from hb-machinery-private.hh
Behdad Esfahbod 44d1fb37 2018-08-01T14:51:51 1.8.5
Ebrahim Byagowi 1a7fed63 2018-08-01T12:15:44 Revert "Add a new API, hb_ot_layout_get_feature_name_ids (#976)" (#1121) This reverts commit 0c1b287b72e91e0898d75acb5d5acf1c6b9a7498.
Garret Rieger 89733755 2018-07-30T18:10:43 [subset] use add_array to populate feature_indexes. This is much faster then calling a bunch of individual add()'s.
Garret Rieger 7d92bef9 2018-07-30T17:17:43 [subset] collect features first, then use those to collect lookups.
Garret Rieger 5edf454a 2018-07-26T17:42:02 [subset] During lookup collection remember the features we've already processed.
Garret Rieger 85646fda 2018-07-23T15:37:18 [subset] Limit the iterations of the closure algorithm. Prevents O(n^2) run times.
Behdad Esfahbod 9583e007 2018-07-22T22:40:32 Port more off of Sanitizer<>
Ebrahim Byagowi 0c1b287b 2018-07-21T21:14:48 Add a new API, hb_ot_layout_get_feature_name_ids (#976) This new API returns cvXX and ssXX related NameId, things like featUiLabelNameId, featUiTooltipTextNameId, sampleTextNameId, ... of cvXX and UINameId of ssXX, in a unified way. However HarfBuzz currently doesn't expose an API for retrieving the actual information associated with NameId from the `name` table and that should be done separately.
Behdad Esfahbod db5d430e 2018-07-17T18:14:45 [aat] Update for blob changes Also, uncomment code again, just "if (0)" it out, so it doesn't get stale again.
Behdad Esfahbod f56cd9df 2018-06-11T22:02:38 Style
Garret Rieger feb23892 2018-06-07T14:32:34 [subset] Use gsub closure if ot layout is not being dropped.
Garret Rieger 57badadb 2018-06-06T16:02:51 [subset] add a new closure call to hb-ot-layout that can compute the closure over multiple lookups.
Garret Rieger 45186b9b 2018-06-05T17:14:42 [subset] Add memoization of GSUB lookup closures.
Behdad Esfahbod f7515769 2018-06-01T17:48:37 [vector] Use Crap pool in push() as well
Behdad Esfahbod 7185b273 2018-05-31T20:03:00 Rename in_error to !successful Towards possibly using Null pool for some nil objects.
Behdad Esfahbod fd3d0042 2018-05-24T15:58:26 Move pool definitions to hb-static.cc
Behdad Esfahbod 7f7b1370 2018-05-24T14:09:04 Fix Uniscribe build If a pointer type was passed to Null(), reinterpret_cast<> was complaining about qualifiers being removed. Turns out I need the const on the other side of "Type" to fix that. Also remove unused const from NullPool type.
Behdad Esfahbod f83e992c 2018-05-24T11:46:57 Mark CrapPool thread_local Not sure if I like to keep it. For now, aim for correctness.
Behdad Esfahbod 5d801298 2018-05-24T11:33:15 Add CrapPool Common Regoin for Access Protection. Like the NullPool, but writable.
Behdad Esfahbod 2a46a020 2018-05-08T02:53:03 Minor
Behdad Esfahbod eba1c16a 2018-05-08T02:47:42 Always lock blob in sanitize. Remove blob->lock_as() in favor of blob->lock()
Behdad Esfahbod b4fa5050 2018-05-08T02:45:08 Move Sanitizer::lock_instance<>() to blob->lock_as<>().
Behdad Esfahbod abc12f7b 2018-05-08T02:23:36 Move null pool to hb-private
Behdad Esfahbod 203dc44e 2018-05-03T21:03:27 [ot-layout] Remove unused members We should hang those off somewhere else. For now, the unused ones can go.
Behdad Esfahbod 37b95612 2018-05-01T19:09:00 Remove hb_auto_array_t Part of https://github.com/harfbuzz/harfbuzz/issues/1017
Ebrahim Byagowi 218fa716 2018-03-10T11:13:52 [ot-color] SVG table implementation (#874)
Ebrahim Byagowi 4c63c823 2018-03-10T11:07:56 [ot-color] sbix table implementation (#870)
Ebrahim Byagowi c446c23f 2018-03-03T22:43:23 [ot-color] Move the related tables to hb-ot-color-* (#858)
Ebrahim Byagowi f671f7f0 2018-02-28T13:19:40 [colr] Implement
Ebrahim Byagowi 5b9c2340 2018-02-27T22:56:17 [CPAL] Refactor and address the reviews
Ebrahim Byagowi 101850f9 2018-02-27T20:15:54 Merge with master
Ebrahim Byagowi f110c0c8 2018-02-27T11:41:12 Merge pull request #838 from harfbuzz/BASE BASE table
Ebrahim Byagowi 0ad8c663 2018-02-26T12:45:08 Remove public API of the branch
Ebrahim Byagowi ae14dd0f 2018-02-26T00:31:09 [aat] Implement ankr
Behdad Esfahbod 551fa2d2 2018-02-25T16:32:17 [BASE] Minor
Behdad Esfahbod 05699fd9 2018-02-24T12:01:54 Merge remote-tracking branch 'eroux/add-base'
Ebrahim Byagowi 1ab16f45 2018-02-24T12:49:42 [aat] Implement trak logic (#816)
Behdad Esfahbod cd32177a 2018-02-11T19:34:05 Try at fixing multiple-definition of NullPool If we don't have visibility, make NullPool static.
Behdad Esfahbod cdab20df 2018-02-10T15:45:17 Minor
Bruce Mitchener 148ca610 2018-01-31T22:24:51 [ot-layout] Fix nullptr dereference. If the `calloc` for `gsub_accels` or `gpos_accels` fails, then the unlikely branch afterwards can be taken, which frees up the `hb_ot_layout_t`, but since those fields can now be `nullptr`, then we don't want to dereference them.
Behdad Esfahbod fd034490 2018-01-17T16:46:51 Rename hb_apply_context_t to hb_ot_apply_context_t
Behdad Esfahbod 470fe5b6 2018-01-09T15:48:51 [aat] Implement Lookup table Untested, but compiles.
Behdad Esfahbod c71b55a2 2017-08-14T17:24:36 [aat] Start implementing Apple AAT morx table
Behdad Esfahbod be9e307a 2017-12-01T12:36:26 [ot] Ensure layout in hb_ot_layout_table_get_lookup_count()
Behdad Esfahbod ec86cc5e 2017-10-30T14:11:59 Fix Windows build (And prevent it from happening in the future.)
Behdad Esfahbod af3f72f9 2017-10-27T15:13:50 Correctly mark NullPool const Saves some more code size as well!