Commit Graph

442 Commits

Author SHA1 Message Date
Behdad Esfahbod 79e8b30609 [ot-shape] Fix application of kern table if GPOS kern is missing
Was broken sometime after we implemented kerx and tweaking it.

Fixes https://github.com/harfbuzz/harfbuzz/issues/3043
2021-07-16 16:29:44 -06:00
Behdad Esfahbod a623446a34 [shape] Remove stray clear_output() call in hb_shape() 2021-07-12 16:55:54 -06:00
Behdad Esfahbod 1cb0ca1f2c Whitespace 2021-07-12 16:52:51 -06:00
Behdad Esfahbod 0969614865 [ot-shape] Rewrite loop without foreach_grapheme()
We were not using the graphemes, and that's costlier than just for().
2021-06-26 08:52:53 -06:00
Khaled Hosny c3be28ea26 [ot-shape] Numeric runs native direction is LTR
See inline comments. Slightly modified version of the code from Jonathan
Kew on the linked issue.

Fixes https://github.com/harfbuzz/harfbuzz/issues/501
2021-06-23 13:11:27 -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
Behdad Esfahbod 2b0ced28b6 Cluster Regional_Indicator pairs (aka emoji flags)
Fixes https://github.com/harfbuzz/harfbuzz/issues/2265
2021-06-14 06:34:58 -07:00
Behdad Esfahbod 5bc05ba155 Prefer GPOS over kerx, if GSUB was applied
Fixes https://github.com/harfbuzz/harfbuzz/issues/3008
2021-06-13 05:28:20 -06:00
Jonathan Kew bbc5fc3731 [aat] If shaping via morx, don't adjust mark positioning when zeroing widths. 2021-05-17 21:44:29 -06:00
Behdad Esfahbod e6be9eb4fb [buffer] HB_NODISCARD output_info() 2021-03-15 14:12:10 -06:00
Behdad Esfahbod 9fcba109bf [buffer] Make swap_buffers() copy rest 2021-02-19 18:40:48 -07:00
Simon Cozens fd8f4ffcc6 Trace reorder, not normalize 2020-11-17 09:05:40 +00:00
Simon Cozens 2e0193d741 Add more cast spaces 2020-11-17 09:05:40 +00:00
Simon Cozens 8e1bedc50b Keep phase names 2020-11-17 09:05:40 +00:00
Simon Cozens f19018da41 Smaller issues from review 2020-11-17 09:05:40 +00:00
Simon Cozens 8b3b835a0a Trace normalization and preprocessing stages 2020-11-17 09:05:40 +00:00
Nathan Willis eb10ef46aa [Docs] Add GTK-Doc comments for hb-ot-font and hb-ot-shape. 2020-09-26 09:46:15 +02:00
Ebrahim Byagowi d0e2addd43 minor 2020-07-18 22:16:02 +04:30
Sebastian Rasmussen a373e16131
[ot-shape] Free shape plan maps upon error creating data (#2497) 2020-06-27 20:09:45 -07:00
Ebrahim Byagowi f9070cfef8 Run morx if run is horizontal or GSUB doesn't exist 2020-01-25 00:36:36 +03:30
Dominik Röttsches 298c46afbf Only prefer AAT morx for horizontal layout
Fixes #2124.
2020-01-24 19:48:36 +03:30
Dominik Röttsches 66dfd605b5 Fix duplicate check in hb_ot_rotate chars
Fixes #2099. Fix indentation in mirroring section as well.
2020-01-13 18:20:12 +03:30
Evgeniy Reizner b79ceac3c6 Prefer UINT_MAX instead of uint overflow.
Also, prefer HB_FEATURE_GLOBAL_START and HB_FEATURE_GLOBAL_END.
2019-12-15 11:46:05 -08:00
Behdad Esfahbod f47cbade18 [aat] Adjust fallback positioning logic
Fixes https://github.com/harfbuzz/harfbuzz/issues/1528

Wish could add a test...

$ ./hb-view --font-file Thonburi.ttc --unicodes U+0E17,U+0E35,U+0E48,U+0E4A --shaper ot

                   ▃

         ▂▃▃▄▃▂▁▊        ▃  ▃       ▎
      ▗   ▅▆▆▅          ▌ ▆▆▅▆▙ ▌▗
     ▗                  ▙ ▂  ▎▗   ▟
     ▅▆▆▆▇▇▇▇▇▇▇▆▆▅▄     ▇▅▅▅ ▙▆▇
    ▁▁▂▁       ▁▁
         ▖                    ▖ ▂▂
  ▉   ▁        ▆▆        ▌   ▆  ▙▄ ▁▁
   ▙            ▉      ▃▖           ▟
      ▊         ▉      ▅▟           ▗▄
      ▊         ▉     ▗ ▏           ▇▆
      ▊    ▟    ▉      ▆             ▖
      ▊         ▉        ▌        ▂
      ▊   ▏     ▉           ▌ ▗   ▄▟
      ▊                        ▆
2019-12-09 18:11:04 -06:00
Behdad Esfahbod 2dc20e632e Implement fallback vertical shaping from Firefox
Fixes https://github.com/harfbuzz/harfbuzz/issues/355
2019-12-05 15:28:42 +00: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
Behdad Esfahbod 1a1d64bc6f If applying morx, apply kern table even if GPOS is present and has kern
Since we won't be applying GPOS if morx...

To be adjusted as I receive more information from Ned.  But for now
fixes this:

$ ./hb-shape GillSans.ttc Ty
[T=0+1109|y=1@-128,0+769]

Fixes https://github.com/harfbuzz/harfbuzz/issues/1982 for now.
2019-10-31 12:51:40 -07:00
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
Khaled Hosny 40aef1b473 [ot-shape] Keep horizontal_features array sorted 2019-08-16 02:17:32 +02:00
Khaled Hosny da5118da77 [ot-shape] Enable abvm/blwm features by default
Core Text seems to apply them to Latin text, but Uniscribe doesn’t.

See https://github.com/harfbuzz/harfbuzz/pull/1908#issuecomment-521819343
2019-08-16 02:17:32 +02:00
Khaled Hosny 2164bd6f29
[ot-shape] Enable dist feature by default (#1908)
Fixes https://github.com/harfbuzz/harfbuzz/issues/1907
2019-08-16 00:28:41 +02:00
Behdad Esfahbod cd65305b05 [config] Don't disable emoji sequences in HB_TINY
It makes sense to disable this code these if editing is not needed.
However, this is also necessary to correctly display emoji sequences
in right-to-left direction.  For that reason, don't auto-disable it.
2019-06-26 14:57:48 -07:00
Behdad Esfahbod 5130c90ac0 [config] Add HB_NO_EMOJI
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-26 14:29:39 -07:00
Behdad Esfahbod 2804790bce [config] Add dependency 2019-06-26 13:38:14 -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 7aad53657e [config] Add HB_NO_OT_SHAPE / HB_NO_OT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-26 13:21:03 -07:00
Behdad Esfahbod f4de0c7754 [config] Disable AAT map
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 17:09:55 -07:00
Behdad Esfahbod d8bf6723a1 [config] Disable more legacy kerning
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 17:04:16 -07:00
Behdad Esfahbod 43d7048d59 [config] More trak disabling
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 17:02:32 -07:00
Behdad Esfahbod d84932ba50 [config] add HB_NO_OT_SHAPE_FRACTIONS, enabled in HB_LEAN
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 16:57:48 -07:00
Behdad Esfahbod eaf4a7364c [config] Minor trak disable
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-19 16:51:23 -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
Behdad Esfahbod 231d025788 [config] Don't compile AAT API if HB_NO_AAT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-06-18 14:25:52 -07:00
Ebrahim Byagowi 9e7c9c3adb
Fix -Wunused-function on HB_NO_SHAPE_AAT
We should add a bot for it
Part of #1652
2019-05-14 15:58:51 +04:30
Behdad Esfahbod 809c587083 [config] Better compile away morx/kerx/trak
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-13 14:45:51 -07:00
Behdad Esfahbod 799c6a5081 [config] Add some 2019-05-10 23:56:40 -07:00
Behdad Esfahbod 2c93f0dee3 Add HB_NO_AAT
Part of https://github.com/harfbuzz/harfbuzz/issues/1652
2019-05-10 23:35:10 -07:00
Behdad Esfahbod 41248cce0e Remove MIN/MAX in favor of hb_min/hb_max 2019-05-07 20:54:31 -07:00
Eric Muller 30d7c40f8c Add a flag to hb_buffer_t to prevent the insertion of dotted circles on incorrect character sequences.
Current behavior unchanged if this flag is not set (and it isn't by default).
2019-03-11 16:06:41 -07:00