Behdad Esfahbod
cad2fe8e63
[baseline] Fix HB_NO_METRICS build
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3482
2022-03-15 10:49:29 -06:00
Behdad Esfahbod
a8a89b80b4
[layout] Whitespace
2022-03-15 10:48:03 -06:00
Behdad Esfahbod
6bf8f0a38f
[baseline] Use ot-metrics fallback API
2022-03-15 10:44:41 -06:00
Matthias Clasen
e7ab42b246
[layout] Fix handling of baseline variations
...
For BASE table format 1.1, the handling of design
space vs user space coordinates was inconsistent.
We were applying design -> user transformation
twice for the deltas, leading to wrong baseline
values.
Patch by Ebrahim Byagowi <ebrahim@gnu.org>
Fixes : #3476
2022-03-10 09:29:56 -07:00
Khaled Hosny
8d1b000a3e
4.0.0
2022-03-01 21:27:32 +02:00
Matthias Clasen
95bb2ff719
[ot-layout] Add central baselines
...
Add HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL
and HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL
which are the centers of the ideographic em-box
and face box.
2022-02-16 17:37:35 -06:00
Matthias Clasen
f81578fd86
[ot-layout] Synthesize missing baselines
...
Add a variation of hb_ot_layout_get_baseline that
synthesizes missing baselines, using heuristics in part
taken from the CSS Inline Layout Module, Level 3.
Includes some new tests for synthesized baselines.
The base2.ttf is a subset of Noto Sans Bengali that
includes just the Bengali Ka.
New API: hb_ot_layout_get_baseline_with_fallback
2022-02-16 17:37:33 -06:00
Behdad Esfahbod
98079109e6
[ot-layout] Add +hb_ot_layout_get_horizontal_baseline_tag_for_script()
...
New API:
+hb_ot_layout_get_horizontal_baseline_tag_for_script()
2022-02-16 13:54:22 -06:00
Matthias Clasen
9909e33268
Improve docs for hb_ot_layout_get_ligature_carets
...
Add some relevant details to the documentation
for this function.
Fixes : #3168
2022-02-15 18:48:54 -06:00
Garret Rieger
bc899650c7
[subset] Fix for issue #3397 .
...
cur_intersected_glyphs gets modified during recursion leading to incorrect filtering of sub tables in some cases. So don't use cur_intersected_glyphs. Instead just add an additional entry onto the parent_active_glyphs () stack.
Additionaly expands NotoNastaliqUrdu tests to include coverage of the issue from #3397 .
2022-01-28 14:20:33 -08:00
Behdad Esfahbod
bea5369c6d
[buffer] Rename swap_buffers() to sync()
2022-01-04 10:52:05 -07:00
Garret Rieger
d67025705f
[subset] reset the visited lookup count before each closure iteration.
2021-12-10 15:13:49 -07:00
Behdad Esfahbod
394f772937
[map] Allow storing classes in the hashmap
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3293
The trick was to change the type of the invalid key/value to be non-class.
2021-11-19 11:49:23 -07:00
Matthias Clasen
1e07d42aa6
Typo fix
2021-11-07 07:58:28 +02:00
Matthias Clasen
1fd7fd9823
Cosmetics: Avoid confusing indentation
...
This line had me confused for a second because
the condition looked like a cast and the if just
looked misplaced. Add a line break to prevent
such confusion.
2021-11-06 09:19:55 -07:00
Matthias Clasen
3471f8f69e
docs: Clarify a doc comment
...
Reword the docs for hb_ot_layout_script_select_language and
be a bit more specific about the returned index.
2021-11-06 09:19:55 -07:00
Qunxin Liu
364b6b3989
[subset] Don't assume FeatureList is sorted
...
Though the spec said FeatureRecords are sorted alphabetically by feature
tag, there're font files with unsorted FeatureList. And harfbuzz is not
able to subset these files correctly because we use binary search in
finding featureRecords when collecting lookups. Also
find_duplicate_features needs to be updated to handle this.
2021-11-02 15:15:02 -07:00
Behdad Esfahbod
6d555ce82e
[meta] Use std::forward instead of hb_forward()
2021-11-02 00:18:22 -06:00
Khaled Hosny
b36f1510ec
[doc] Add missing version tags
2021-09-18 23:09:07 +02:00
Behdad Esfahbod
95b04f7409
[buffer] Remove unnecessary have_separate_output()
2021-07-12 17:36:38 -06:00
Behdad Esfahbod
3807061d63
[ot-layout] Don't remove_output() before reverse substitution
...
No need anymore, because of new swap_buffers() semantics.
Just assert instead.
2021-07-12 17:36:22 -06:00
Behdad Esfahbod
a7f4c985a8
[ot-layout] Always swap_buffers() even if no substitutions happened
2021-07-12 17:00:46 -06:00
Behdad Esfahbod
62b441e6ff
[layout] Use Proxy::inplace instead of table index check
...
Equivalent.
2021-07-12 16:59:34 -06:00
Behdad Esfahbod
431f164003
[layout] Don't call clear_output() before pause-func
2021-07-12 16:57:25 -06:00
Behdad Esfahbod
1cb0ca1f2c
Whitespace
2021-07-12 16:52:51 -06:00
Behdad Esfahbod
40884af17e
[ot-layout] Narrow down random feature logic vs safe-to-break
2021-07-09 16:34:08 -07:00
Behdad Esfahbod
33b579d0ad
[ot-layout] Clear random flag for subsequent flags
...
Ouch!
2021-07-09 16:34:08 -07:00
Behdad Esfahbod
bb48bf52a4
Rename misc uses of "free"
...
In preparation for fixing https://github.com/harfbuzz/harfbuzz/issues/3044
2021-07-08 10:54:09 -07:00
Garret Rieger
bc06af977f
[subset] speed up feature collection when tags are specified.
...
Precompute a feature index filter to avoid needing to iterate the feature tag list for each encountered feature index. For this particular fuzzer case speeds up feature collection from 50s to 2s.
2021-06-20 17:45:19 -07:00
Behdad Esfahbod
93e6a9bc4e
Revert "Remove unneeded buffer clear_output / remove_output calls"
...
This reverts commit 06175b7143
.
One of the sanitizers is failing. Pushing again as PR to debug.
I have suspicions.
2021-06-15 15:38:49 -06:00
Behdad Esfahbod
06175b7143
Remove unneeded buffer clear_output / remove_output calls
...
Made sure clear_output is always paired with swap_buffers.
Trying to see if we can move towards RAII-like buffer iterators
instead of the buffer keeping an iterator internally.
2021-06-15 14:33:27 -06:00
Khaled Hosny
a9fb6a0c3c
[aat] Add start table/end table to buffer messages
...
Related to https://github.com/harfbuzz/harfbuzz/issues/3008
2021-06-06 10:35:28 -07:00
Behdad Esfahbod
cf9538e808
Removal remaining uses of "blacklist" terminology
2021-06-04 22:33:16 -06:00
Khaled Hosny
90713f270e
[hb-ot-layout] Document some return values
2021-04-30 14:05:33 -06:00
Qunxin Liu
0e1c0fa404
[subset] optimize glyph closure method: step 5
...
add testcase and some fixes
2021-03-17 15:22:07 -06:00
Behdad Esfahbod
8450f43ae1
[buffer] HB_NODISCARD next_glyph()
2021-03-15 16:01:35 -06:00
Khaled Hosny
5151c2b668
[introspection] Replace deprecated allow-none
...
Use optional or nullable as appropriate.
2020-12-30 19:21:49 -08:00
Khaled Hosny
8e8c3e5878
[docs] Complete hb-ot-layout docs a bit
2020-12-30 19:21:49 -08:00
Khaled Hosny
a8e72ee784
[docs] Use %true and %false consistently
2020-12-30 23:28:26 +02:00
Khaled Hosny
e93de6362b
[docs] Document unused language in get_baseline
...
Document that language_tag in hb_ot_layout_get_baseline() is currently
unused.
Fixes https://github.com/harfbuzz/harfbuzz/issues/2662
2020-12-30 11:53:46 -08:00
Simon Cozens
428c111f13
Fix spacing around casts
2020-11-17 09:05:40 +00:00
Nathan Willis
70331ca485
[Docs] Minor
...
update GTK-Doc comments in hb-ot-layout.
2020-09-26 09:47:13 +02:00
Ebrahim Byagowi
122a2897e4
[aat] Remove lcar support
...
Very low use, only two distinct font files, Apple Chancery.ttf and Hoefler Text.ttc
have it so it really doesn't worth the size addition and so, but one may argue that
whole ligature caret is low use but guess we better to encourage GDEF one anyway.
2020-07-06 00:05:36 +04:30
Ebrahim Byagowi
e4203c1469
2.6.8
2020-06-22 12:51:22 +04:30
Ebrahim Byagowi
d38eb49f46
Move the iteration logic to FeatureParamsCharacterVariants
...
Hopefully I can make members protected also.
2020-06-19 23:46:49 +04:30
Ebrahim Byagowi
9b3d4f457e
Use dagger in hb_ot_layout_feature_get_characters
...
The way it used to work was a bit nonidiomatic but the replacment
is idiomatic way of iterating used elsewhere.
The new code just doesn't check nullability of "characters", which isn't
what we do anywhere else.
2020-06-19 23:46:44 +04:30
Ebrahim Byagowi
63422c4cbc
[ot-layout] simplify
2020-06-19 23:26:18 +04:30
Ebrahim Byagowi
f1488152bd
[doc] Remove the not needed comment
...
All the other similar iterating API are like this and don't have such
comment, written at the time I wasn't familiar enough with the way such
API are shaped.
2020-06-19 23:07:30 +04:30
Behdad Esfahbod
70d6696cc6
[dispatch] Don't require debug_depth for untraced objects
2020-06-18 17:09:39 -07:00
Behdad Esfahbod
5bc4cedde6
Rename
2020-06-18 17:04:35 -07:00
Behdad Esfahbod
8d0a90ac1b
[dispatch] Default debug level to 0
2020-06-18 16:53:54 -07:00
Behdad Esfahbod
e47a2ab8f8
Remove unused dispatcher names
2020-06-18 16:48:07 -07:00
Behdad Esfahbod
b2a1acccd9
Simplify get_glyph_alternates() dispatcher
...
Trying to make it **very simple** to add a specialized dispatcher for
one API to be routed to just a few objects (one in this case).
2020-06-18 16:41:31 -07:00
Behdad Esfahbod
ffe8d3f39d
Use dispatch for get_glyph_alternates_t
...
First time we do this in a way that if target object doesn't have the matching
function we basically "ignore". Risky but I feel like is the right decision
for this case.
I'm going to put back the template varargs and use those, which would make
the dispatcher be just that: "dispatcher", and wouldn't need to carry the
call context. That would be a refreshing change I think.
2020-06-18 16:31:39 -07:00
Behdad Esfahbod
5bede33885
Whitespace
2020-06-18 15:25:19 -07:00
Ebrahim Byagowi
1bac85828c
[layout] Rename _get_alternates to _get_glyph_alternates
2020-06-18 22:56:07 +04:30
Ebrahim Byagowi
d3c169792b
[layout] move alternate buffer iteration logic to AlternateSet
2020-06-18 09:23:13 +04:30
Ebrahim Byagowi
1348a2c865
[layout] hb_ot_layout_lookup_get_alternates, a new API
...
An API to retrieve one-to-one alternates from a given GSUB lookup index.
2020-06-18 09:11:07 +04:30
Behdad Esfahbod
e7c79e16b8
Merge pull request #2287 from simoncozens/instrumentation
...
Add messages for GPOS/GSUB (take 2)
2020-06-17 15:32:40 -07:00
Simon Cozens
fe926970bc
Reformat messages again
...
Messages can be:
start/end table XXXX
start/end lookup NNNN
start/end subtable NNNN (for kerx/kern)
start/end chainsubtable NNNN (for morx)
2020-06-16 09:12:44 +01:00
Qunxin Liu
973c47f6c9
[subset] Move 2 experimental public api methods to be private methods in GSUB/GPOS.
...
2 methods are: hb_ot_layout_closure_lookups and hb_ot_layout_closure_features
2020-06-12 01:20:30 +04:30
Behdad Esfahbod
56719474c2
s/blacklist/blocklist/g
2020-06-05 12:57:23 -07:00
Qunxin Liu
d7c012a08e
[subset] GDEF Variation Store: step 2
...
do subset based on variation indices collected in step 1
2020-05-21 12:43:24 -07:00
Qunxin Liu
8200e48ffc
[subset] GDEF Variation Store: step 1
...
closure device variation indexes, create old->new variation idx mapping
and store them in subset-plan
2020-05-21 12:43:24 -07:00
Pip Cet
461cd5a158
minor: fix hb_ot_layout_get_ligature_carets
2020-05-20 10:01:24 +00:00
Khaled Hosny
c7afb6d7b8
[docs] Fix broken link
2020-04-22 15:19:37 +02:00
Ebrahim Byagowi
2be859d289
minor, replace nullptr checks with implicit ones
2020-04-21 00:30:34 +04:30
Ebrahim Byagowi
2dda6dd744
minor, tweak spacing
...
turn 8 spaces to tab, add space before Null/Crap
2020-04-20 16:18:29 +04:30
Ebrahim Byagowi
a8455292f4
[layout] minor on doc
2020-04-17 22:50:48 +04:30
Ebrahim Byagowi
29c903223b
Move hb_ot_layout_closure_{features,lookups} behind EXPERIMENTAL flag
2020-04-17 22:25:45 +04:30
Simon Cozens
bdda2ff609
More strictly follow noun/verb/identifier format for GPOS/GSUB lookups
...
Less generic than the previous commit, but more descriptive and more consistent.
2020-03-30 16:40:29 +01:00
Simon Cozens
42aac64030
Add table index to lookup messages
...
We could say GSUB/GPOS explicitly, but using the index is more general, in case future tables (such as JSTF, Silf) become supported.
2020-03-30 16:06:30 +01:00
Simon Cozens
2cea796b75
Instrument entering GSUB/GPOS tables
2020-03-30 16:04:17 +01:00
Khaled Hosny
1b64b73080
Revert "Add messages for GPOS/GSUB phases"
...
This reverts commit b07714d6b5
.
2020-03-30 16:49:23 +02:00
Simon Cozens
b07714d6b5
Add messages for GPOS/GSUB phases
2020-03-23 22:02:44 +02:00
Garret Rieger
c66ee213b7
Limit the number of feature indices processed during feature collection.
2020-02-28 16:10:14 -08:00
Evgeniy Reizner
b4377afd28
Minor hb_ot_layout documentation fixes.
2020-01-31 22:57:38 +03:30
Qunxin Liu
8ffc9add22
[subset] layout closure_features and store them in subset-plan
2020-01-14 07:24:48 +03:30
Ebrahim Byagowi
1a4c658b43
Use REPLACEME tag
...
So we can use the version we like when we decide what it should be while the next release
and can review the API before the release one other time.
2020-01-11 01:30:05 +03:30
Qunxin Liu
0b39c48064
[subset] closure lookups for GSUB/GPOS
2020-01-10 13:11:06 -08:00
Behdad Esfahbod
0414341ac5
Prefer AAT shaping over OT if both available
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/1529
2019-12-05 11:26:39 +00:00
Hal Canary
4dae7cee4b
[minor] Fix common typos: substition, the the.
...
s/substition/substitution/
s/the the/the/
2019-11-13 18:38:35 +03:30
Behdad Esfahbod
d6ad613159
[docs] Misc fixes
2019-09-30 10:40:25 -07:00
Ebrahim Byagowi
8a16d6f1c1
[doc] fix minor typo
2019-09-15 20:43:33 +04:30
Ebrahim Byagowi
a0b4ac4dce
Turn 8 spaces to tab across the project
...
According to the current code style of the project
2019-08-27 02:40:41 +04:30
Ebrahim Byagowi
3ae44645d6
Fix caret_count value when AAT is disabled
...
Set caret_count to zero as that is what we want to happen inside lcar when
there is no result.
2019-08-14 17:58:30 +04:30
Behdad Esfahbod
6461143b44
2.6.0
2019-08-13 22:20:54 -07:00
Ebrahim Byagowi
60d9f00975
Implement opbd table parsing
...
https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6opbd.html
2019-08-11 16:15:19 +04:30
Ebrahim Byagowi
9f2b4956b4
[base] Add hb_ot_layout_get_baseline API
2019-07-30 04:42:51 +04:30
Ebrahim Byagowi
3ac03bd67c
[meta] New API, hb_ot_metadata_reference_entry for fetching meta entries
2019-07-25 17:49:51 -07:00
Ebrahim Byagowi
069872c51b
minor
2019-07-25 14:27:43 +04:30
Ebrahim Byagowi
737eb85a4e
Add _MAX_VALUE to disabled baseline types enum
2019-07-25 14:26:30 +04:30
Ebrahim Byagowi
41ab56e095
Implement meta table parsing
2019-07-22 18:46:52 +04:30
Ebrahim Byagowi
87e628436e
Implement a simple API for fetching opentype metrics
...
Fixes https://github.com/harfbuzz/harfbuzz/pull/1432
2019-07-18 14:15:58 -07:00
Behdad Esfahbod
8fe15485cb
[config] Add HB_NO_OT_TAG
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-26 13:49:42 -07:00
Behdad Esfahbod
12092a46d8
[config] Rename HB_NO_SHAPE_AAT to HB_NO_AAT_SHAPE
2019-06-26 13:31:01 -07:00
Behdad Esfahbod
bb4bbe617d
[config] Add HB_NO_OT_LAYOUT
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-26 13:29:58 -07:00
Behdad Esfahbod
fce3bf8127
[config] Add HB_NO_LAYOUT_COLLECT_GLYPHS
...
Part of
2019-06-19 20:34:29 -07:00
Behdad Esfahbod
6c725c7799
[config] Add HB_NO_LAYOUT_FEATURE_PARAMS
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 20:12:25 -07:00
Behdad Esfahbod
588697afd0
[config] Add HB_NO_OT_KERN, enabled by HB_MINI / HB_NO_LEGACY
...
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 16:24:51 -07:00