Commit Graph

391 Commits

Author SHA1 Message Date
Ebrahim Byagowi b986fead0a Hook AAT's lcar to _get_ligature_carets 2018-11-08 23:06:26 +03:30
Behdad Esfahbod 385f78b312 [aat] Remove deleted-glyhs after applying kerx/kern
Finally:  Fixes https://github.com/harfbuzz/harfbuzz/issues/1356

Test case:
$ ./hb-shape GeezaPro.ttc -u U+0628,U+064A,U+064E,U+0651,U+0629
[u0629.final.tehMarbuta=4+713|u064e_u0651.shaddaFatha=1@0,-200+0|u064a.medial.yeh=1+656|u0628.initial.beh=0+656]

The mark positioning (kern table CrossStream kerning) only works if deleted
glyph (as result of ligation) is still in stream and pushed through the
state machine.
2018-11-07 17:20:47 -05:00
Behdad Esfahbod ca23567f41 Disable fallback mark positioning if kern table has cross-stream kerning
Happens even if the cross-stream kerning is for cursive attachment only.  Oh well..
2018-11-07 16:19:51 -05:00
Behdad Esfahbod 9af983af24 [kern] Switch to dispatch 2018-11-07 16:03:09 -05:00
Behdad Esfahbod 37f421c951 Minor 2018-11-06 10:03:38 -05:00
Ebrahim Byagowi 9139cc23ea
Fix link issue of some of the bots
e.g. https://circleci.com/gh/harfbuzz/harfbuzz/52410
2018-11-06 11:17:14 +03:30
Behdad Esfahbod fa3ebf845f Simplify some more 2018-11-05 23:34:07 -05:00
Behdad Esfahbod 737efbe655 [ot-layout] Simplify GSUB/GPOS access
This concludes simplifying table access to face->table.XXXX.
2018-11-05 23:26:29 -05:00
Behdad Esfahbod 5e68cec179 [ot-layout] Simplify GDEF access 2018-11-05 23:23:57 -05:00
Behdad Esfahbod db35409f0d [ot-layout] Remove ensures 2018-11-05 23:11:46 -05:00
Behdad Esfahbod 0fe7a745c9 [ot-face] Simplify more table access 2018-11-05 23:10:18 -05:00
Behdad Esfahbod a35c92cbe7 [ot-face] Simplify table access
Yoohoo!
2018-11-05 23:10:16 -05:00
Behdad Esfahbod 03348ce005 Minor 2018-11-05 12:59:32 -05:00
Ebrahim Byagowi b8a78ce201
[BASE] Improvements (#1347) 2018-11-03 22:28:30 +03:30
Behdad Esfahbod 095f5add0b [kern] Push apply loop to each subtable 2018-11-02 13:23:54 -04:00
Behdad Esfahbod 949dad89a8 [kern] Remove accelerator
It wasn't doing anything.
2018-11-02 12:47:55 -04:00
Ebrahim Byagowi c32280b30f
[ot-layout] minor 2018-11-01 15:31:14 +03:30
Behdad Esfahbod bfd549daaa Fix everything-bot 2018-10-30 14:47:27 -07:00
Garret Rieger 0e1ad5a075 [subset] Limit the number of scripts and langsys' that should be checked when collecting features. 2018-10-30 14:15:58 -07:00
Behdad Esfahbod a7aba99baa [name] Rename hb_name_id_t to hb_ot_name_id_t
https://github.com/harfbuzz/harfbuzz/pull/1254
2018-10-30 14:04:09 -07:00
Behdad Esfahbod 3a4e5dd425 Remove a few unnecessary hb_auto_t<>'s
See a85641446c30247c4e948263f0f8c1147ed4efb9
2018-10-29 22:27:20 -07:00
Behdad Esfahbod 6ce49a921a [name] Change hb_name_id_t back to unsigned int
d941f66c75 (commitcomment-31076011)
2018-10-28 08:26:30 -07:00
Behdad Esfahbod 80d9a427cf [docs] Document remaining sections 2018-10-27 04:58:32 -07:00
Ebrahim Byagowi 524e854c15
Merge pull request #1318 from ebraminio/png
Add a non-hooked _png _svg get emoji blob
2018-10-27 15:04:43 +03:30
Behdad Esfahbod d941f66c75 [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.
2018-10-27 03:06:14 -07:00
Behdad Esfahbod 4025ad8043 Document new API 2018-10-27 03:06:14 -07:00
Ebrahim Byagowi c7a4e3dfb5 [svg] Add public API
* hb_ot_color_has_svg
* hb_ot_color_glyph_svg_create_blob
2018-10-26 09:16:44 +03:30
Behdad Esfahbod e98af6d1ed [layout] Try to speed up collect_lookups some more
Barely made a dent :(.
2018-10-25 22:25:29 -07:00
Behdad Esfahbod eb44bfc864 [layout] Memoize collect_features
Fixes https://github.com/harfbuzz/harfbuzz/pull/1317
Fixes https://oss-fuzz.com/v2/testcase-detail/6543700493598720
2018-10-25 22:15:11 -07:00
Behdad Esfahbod 941600a9e0 [layout] Add hb_collect_features_context_t
Towards https://github.com/harfbuzz/harfbuzz/pull/1317
2018-10-25 21:26:56 -07:00
Behdad Esfahbod c237cdfcc7 [lookup] Fold another function inline 2018-10-25 21:17:30 -07:00
Behdad Esfahbod fe5520ddea [layout] More prep work to memoize collect_features() work 2018-10-25 21:14:32 -07:00
Behdad Esfahbod e8e67503ff [lookup] More prep work for memoizing collect_features
https://github.com/harfbuzz/harfbuzz/pull/1317
2018-10-25 20:48:20 -07:00
Behdad Esfahbod 96828b97a8 [layout] Minor
We were returning the accelerator's lookup count.  Returns table's.
They are the same except for OOM cases.  Just shorter code.
2018-10-25 20:34:29 -07:00
Behdad Esfahbod 73449cd213 [layout] Fold one function inline
Preparation for fixing https://github.com/harfbuzz/harfbuzz/pull/1317
2018-10-25 20:32:05 -07:00
Behdad Esfahbod a5ad8c658d [docs] More fixes 2018-10-20 16:52:55 -07:00
Behdad Esfahbod 3d9a0306eb 2.0.0 2018-10-18 05:58:17 -07:00
HinTak 49bdb54427 typo in gobject annotation - "in/out" should be "inout"
"in/out" should be "inout"
2018-10-16 16:41:12 -07:00
Ebrahim Byagowi 63109432cf Cosmetic and minor changes 2018-10-13 07:23:33 -04:00
Behdad Esfahbod c0a6814b49 Touch up new API
New API:
+hb_ot_layout_feature_get_name_ids()
+hb_ot_layout_feature_get_characters()
2018-10-12 16:06:39 -04:00
Ebrahim Byagowi dc49bd8d81 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.
2018-10-12 16:06:39 -04:00
Behdad Esfahbod 8061664ad1 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()
2018-10-11 14:17:17 -04:00
Behdad Esfahbod cf975ac653 Remove use of deprecated function 2018-10-11 14:07:44 -04:00
David Corbett 91067716f5 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.
2018-10-11 13:54:28 -04:00
Behdad Esfahbod e78549edfb Move apply down into subtables accel 2018-10-10 11:54:48 -04:00
Behdad Esfahbod 78c09bf213 Move subtable array into lookup accel 2018-10-10 11:50:46 -04:00
Behdad Esfahbod 97e5913d5a Move more code 2018-10-10 11:41:05 -04:00
Behdad Esfahbod c8f2d9334c Move code
In preparation to move add per-subtable set digests...
2018-10-10 11:36:28 -04:00
Behdad Esfahbod a51958819f Apply TrueType/OpenType kern table when GPOS kern feature is not available
Fixes https://github.com/harfbuzz/harfbuzz/issues/250
2018-10-08 23:57:45 -04:00
Behdad Esfahbod 606bf57430 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 94bfea0ce6.
This reverts commit 4e62627831.
2018-09-16 19:34:39 +02:00