src/hb-ot-map.hh


Log

Author Commit Date CI Message
Khaled Hosny cf336f17 2025-02-10T14:15:25 [shape-plan] Rename hb_ot_shape_plan_get_features to get_feature_tags Simplify the API by returning only feature tags. The users of this API would be interested only in feature enabled by default and whether the feature is globally or partially enabled wouldn’t be of much interest in that case. For user features, the user of the API already have full access to them.
Khaled Hosny a7d7715f 2025-02-02T23:06:11 [shape-plan] Add hb_ot_shape_plan_get_features This should get the features on a shape plan after executing it. Initially I wanted to return an array of tags, but then there can be user features that are not enabled globally, so I thought returning hb_feature_t with value and range would be better. There is a TODO since I couldn’t figure out how to get the value and range from the feature mask. But also it may be overkill and a simple boolean indicating wither it is a global feature or not would be enough. I wounder also what should happen to non-user features that are applied selectively, like init or medi, does ot make sense to indicate whether they are global or not? This is inspired by the discussion in: https://github.com/fontforge/fontforge/pull/5522#pullrequestreview-2574321449, but it might be useful to other HarfBuzz users.
Behdad Esfahbod de2c1073 2023-07-02T16:44:48 [ot-map] Speed up for default shaper Sort late, the reduced number of features.
Behdad Esfahbod 4b8d8fbe 2022-11-26T14:31:15 [ot-map] Micro-optimize for size
Behdad Esfahbod a81dd105 2022-11-26T13:43:15 [layout] Adjust printing feature tags For required-feature, print spaces, not nul bytes.
Behdad Esfahbod 56e3868b 2022-11-26T13:14:23 [layout/buffer-message] Print feature name in lookup buffer messages
Behdad Esfahbod ac0efaf8 2022-11-22T12:50:36 Use hb_memset instead of memset consistently
Behdad Esfahbod 2268207c 2022-11-16T17:51:22 [layout] Update comment
Behdad Esfahbod 658f8f43 2022-11-16T17:50:35 [layout] Comment
Behdad Esfahbod 27a8fe7d 2022-11-16T17:49:44 [layout] Only update buffer digest if buffer changed by a pause
Behdad Esfahbod 2ad3c0c7 2022-07-21T09:46:25 Fix uninitialized variable
Behdad Esfahbod 55a1e0bb 2022-07-20T13:10:28 [ot-map] Use hb_array for a return value
Behdad Esfahbod d57ce300 2022-07-17T21:56:56 [ot-shape] Pass reference to props instead of pointer Since cannot be nullptr.
Behdad Esfahbod d68507d0 2022-07-14T11:20:00 [arabic] Pause after calt only if no rclt Fixes https://github.com/harfbuzz/harfbuzz/issues/1573
Behdad Esfahbod 044d7a06 2022-03-28T12:38:56 [indic-like] Add per-lookup per-syllable flag This allows mix-and-matching per-syllable and other lookups. In fact, removes the clear-syllables call completely. Fixes https://github.com/harfbuzz/harfbuzz/issues/3513
ebraminio 1f8b1e7f 2020-09-21T11:39:38 [ENOMEM] Return gracefully if stages isn't initialized correctly (#2639) This happens if calls to 'm.lookups[table_index].push ()' has been silently failed due to lack of memory. This change just returns gracefully instead issuing the assert. Fixes https://crbug.com/oss-fuzz/24494
Ebrahim Byagowi 46ec6db9 2020-07-22T17:30:48 minor
Evgeniy Reizner b79ceac3 2019-12-15T16:50:01 Prefer UINT_MAX instead of uint overflow. Also, prefer HB_FEATURE_GLOBAL_START and HB_FEATURE_GLOBAL_END.
Behdad Esfahbod df444806 2019-07-02T17:11:09 Remove unused 'inline' specifier
Behdad Esfahbod 95df00ae 2019-04-12T17:50:03 Hide a few static methods Looks like static methods that do not get inlined end up exported. We have a lot more. Need to protect all at some point. Wish there was an easier way, like the visibility flag we pass that automatically hides all inline methods. Was exposed by check-symbols.sh when compiling on OS X 10.14 with: $ make CPPFLAGS=-Oz CXXFLAGS=-flto=thin LDFLAGS=-lc++
Behdad Esfahbod 815cde9f 2019-01-07T18:33:04 [iter] Use is_sorted_iterator
Behdad Esfahbod fa333e34 2018-12-27T17:56:22 [vector] Remove static_array Was good idea, but with C++ types with constructor/destructor, was getting in the way as compiler was destructing those items where it was not desired. Since C++ does not allow zero-sized arrays, just remove it...
Behdad Esfahbod 474a1205 2018-12-21T18:46:51 [array/vector] Rename len to length
Ebrahim Byagowi e4120085 2018-12-17T21:31:01 Remove redundant void from C++ sources (#1486)
Ebrahim Byagowi b2ebaa9a 2018-12-16T22:38:10 Remove redundant 'inline' from methods (#1483)
Behdad Esfahbod 22e1857b 2018-11-24T00:53:19 [arrays] Change argument type of cmp called by hb_vector_t.bsearch() Towards consolidating all array bsearch/...
Behdad Esfahbod cc842875 2018-11-12T18:48:10 [shape-plan] Cache shape plans with variations based on variation indices
Behdad Esfahbod e8fccbc3 2018-10-23T13:25:03 Minor
Behdad Esfahbod 0a371fee 2018-10-02T14:48:39 Minor
Behdad Esfahbod 94d15528 2018-10-02T14:45:09 Minor
Behdad Esfahbod b1e07e1e 2018-09-30T05:43:22 [indic/khmer] Remove use of global constructors Alternative woul have been to resurrect F_COMBINE that I removed in 70136a78cb9eda244767f8e8a3d30d0f3c569d01 But this does it for now. I'm not sure why check-static-inits.sh didn't catch this before. Clang -Weverything bot did: CXX libharfbuzz_la-hb-ot-shape-complex-indic.lo hb-ot-shape-complex-indic.cc:99:1: warning: declaration requires a global constructor [-Wglobal-constructors] indic_features[] = ^ 1 warning generated. CXX libharfbuzz_la-hb-ot-shape-complex-khmer.lo hb-ot-shape-complex-khmer.cc:36:1: warning: declaration requires a global constructor [-Wglobal-constructors] khmer_features[] = ^ 1 warning generated.
Behdad Esfahbod 6c0e7eb6 2018-09-24T19:07:23 Minor
Behdad Esfahbod 70136a78 2018-09-24T18:03:34 Remove F_COMBINE Now I wonder if any bots will be unhappy we calling | in static const initializations... Or would that cost runtime init? Our tests don't detect any..
Behdad Esfahbod f048ead8 2018-09-24T18:01:53 Some more
Behdad Esfahbod 1676f608 2018-09-24T17:55:03 Minor refactoring
Behdad Esfahbod 71c9f84e 2018-09-10T22:37:19 Make --features rand=1 available to the user Use rand=255 to mean "randomize". Part of https://github.com/harfbuzz/harfbuzz/pull/803
David Corbett f05df643 2018-01-26T21:36:15 Allow requesting a specific glyph for 'rand' Randomization only happens by default. If the user specifies a value for 'rand', that value is respected.
David Corbett c2a75e07 2018-01-25T14:22:03 Implement 'rand'
Behdad Esfahbod c77ae408 2018-08-25T22:36:36 Rename hb-*private.hh to hb-*.hh Sorry for the noise, downstream custom builders. Please adjust.