Behdad Esfahbod
d21bfb0861
[normalize] Remove an unlikely
...
Keep unlikely for truely unlikely scenarios.
2022-11-24 13:14:05 -07:00
Behdad Esfahbod
7ec4a556d9
[normalize] Cosmetic
...
I didn't know this syntax is allowed in old C++.
2022-06-19 11:01:45 -06:00
Behdad Esfahbod
10a8cc28fc
[normalizer] Remove a TODO that's not going to happen
2022-06-10 07:31:06 -06:00
Behdad Esfahbod
cc7ebb0ffa
Remove remaining mention to complex shapers in the code
...
https://github.com/harfbuzz/harfbuzz/pull/3628#issuecomment-1146248037
2022-06-04 05:42:58 -06:00
Behdad Esfahbod
5bfb0b721c
Rename s/shape-complex/shaper/g
2022-06-03 10:30:34 +01:00
Behdad Esfahbod
13fbed29e4
s/HB_OT_SHAPE_COMPLEX_MAX_COMBINING_MARKS/HB_OT_SHAPE_MAX_COMBINING_MARKS/g
2022-06-03 10:30:34 +01:00
Behdad Esfahbod
bea5369c6d
[buffer] Rename swap_buffers() to sync()
2022-01-04 10:52:05 -07:00
Behdad Esfahbod
06ee40213c
Use invisible-glyph for spaces if font has no ASCII space
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/3340
Should add tests ideally.
2021-12-22 21:34:44 -07:00
Behdad Esfahbod
da500568de
[API] Add hb_buffer_[sg]et_not_found_glyph() and --not-found-glyph
...
Instead of using gid=0 when a character is not found in the font,
client can now set a custom value. This is useful for shaper-driven
font fallback and to differentiate that from .notdef glyph.
Fixes https://github.com/harfbuzz/harfbuzz/issues/1360
2021-10-26 08:02:29 -06:00
Khaled Hosny
195c05df99
Revert "[ot-shape-normalize] Move buffer out of hb_ot_shape_normalize_context_t"
...
This reverts commit 8cdbea5580
.
For some reason this is causing several tests to crash locally for me
(on macOS), see:
8cdbea5580 (commitcomment-55898088)
2021-09-04 03:41:19 +02:00
Behdad Esfahbod
8cdbea5580
[ot-shape-normalize] Move buffer out of hb_ot_shape_normalize_context_t
2021-08-24 10:35:33 -06:00
Behdad Esfahbod
8450f43ae1
[buffer] HB_NODISCARD next_glyph()
2021-03-15 16:01:35 -06:00
Behdad Esfahbod
34a1204f10
[buffer] HB_NODISCARD output_glyph()
...
Also, generalize and use replace_glyphs() in morx where output_glyph() was used
in a loop.
2021-03-15 16:01:35 -06:00
Behdad Esfahbod
b05e5d9a79
[buffer] HB_NODISCARD next_glyphs()
2021-03-15 14:08:08 -06:00
Behdad Esfahbod
607979d12f
[buffer] HB_NODISCARD replace_glyphs()
2021-03-15 13:23:48 -06:00
Behdad Esfahbod
bcd10bf274
[normalize] Add buffer success check before ->next_glyph()
...
Speculative fix for:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27843
2021-02-17 13:58:56 -07:00
Simon Cozens
fd8f4ffcc6
Trace reorder, not normalize
2020-11-17 09:05:40 +00:00
David Corbett
645f4e7cdd
Unhide CGJ before ccc=0 characters
...
If a CGJ precedes a starter, then it cannot have blocked any reordering,
so it can safely be skipped.
2020-09-02 15:51:15 -07:00
Evgeniy Reizner
34ed8e7218
Prefer _hb_glyph_info_is_unicode_mark where possible.
2019-12-13 08:55:34 +03: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
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
7f5941e162
Remove stale comment
...
Ugliness was fixed in 30eab97a00
But yeah, my smell detector was working. Ugliness was buggy.
2018-10-27 00:06:48 -07:00
Behdad Esfahbod
30eab97a00
Fix invalid memory read
...
Buffer might be relocated inside replace_glyphs().
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=895117
2018-10-26 21:54:40 -07:00
Behdad Esfahbod
39bd07aed5
Fix bunch of unused parameter warnings
...
Show up with gcc -O0.
There's a few more but those are functions that need to be filled in.
Maybe this is a lost battle...
2018-10-26 21:22:26 -07:00
Behdad Esfahbod
e883f52732
Call get_nominal_glyphs() for runs of simple clusters at a time
...
Even without FT or OT font funcs implementing get_nominal_glyphs(), there's measurable
speedup.
2018-10-09 14:50:57 -04:00
Behdad Esfahbod
8008bca83b
Whitespace
2018-10-09 14:43:03 -04:00
Behdad Esfahbod
30c114ffec
Avoid sort and recompose stages if all clusters simple
...
Even has measurable speedup...
2018-10-09 14:37:08 -04:00
Behdad Esfahbod
24382debe8
Rewrite main normalizer loop to isolate runs of simple clusters
2018-10-09 14:33:24 -04:00
Behdad Esfahbod
b5371f18ef
Inline decompose_cluster
...
Towards separating the common case into its own loop.
2018-10-09 14:12:59 -04:00
Behdad Esfahbod
1d1734e985
Shuffle code around
2018-10-02 13:04:05 +02:00
Behdad Esfahbod
7f335390f3
Revert change that would decompose text if GPOS mark feature is available
...
https://github.com/harfbuzz/harfbuzz/issues/653#issuecomment-423905920
2018-09-24 09:56:18 -04:00
Behdad Esfahbod
a6f4b2f7cd
Fix normalization
...
62d1e0852a (commitcomment-30613091)
2018-09-24 09:54:37 -04:00
Behdad Esfahbod
62d1e0852a
Prefer decomposed form if font has GPOS mark feature
...
Fixes https://github.com/harfbuzz/harfbuzz/issues/653
2018-09-23 21:32:18 -04:00
Behdad Esfahbod
c77ae40852
Rename hb-*private.hh to hb-*.hh
...
Sorry for the noise, downstream custom builders. Please adjust.
2018-08-25 22:36:36 -07:00
Behdad Esfahbod
7185b273b3
Rename in_error to !successful
...
Towards possibly using Null pool for some nil objects.
2018-05-31 20:03:34 -07:00
Ebrahim Byagowi
eaf649450a
Resolve clang's conditional-uninitialize warnings
2018-04-23 11:38:45 -07:00
Behdad Esfahbod
8c0d1916a4
Improve CGJ skipping logic
...
Previously we made CGJ unskippable. Now, if CGJ did NOT prevent
any reordering, allow skipping over it. To make this work we
had to make changes to the Arabic mark reordering algorithm
implementation to renumber moved MCM marks. See comments.
Fixes https://github.com/harfbuzz/harfbuzz/issues/554
2018-01-05 12:48:19 +00:00
Behdad Esfahbod
ab8d70ec70
[arabic] Implement Unicode Arabic Mark Ordering Algorithm UTR#53
...
Fixes https://github.com/behdad/harfbuzz/issues/509
2017-10-04 14:47:10 +02:00
Behdad Esfahbod
b6fe0ab636
Add info_cc() convenience macro
2017-10-04 13:37:08 +02:00
Behdad Esfahbod
7f9e7f8689
Adjust normalizer for out-of-order marks
...
We are going to implement Unicode Arabic Mark Ordering Algorithm:
http://www.unicode.org/reports/tr53/tr53-1.pdf
which will reorder marks out of their sorted ccc order. Adjust
normalizer to stop combining as soon as dangerous ordering is
detected.
2017-10-04 13:20:33 +02:00
Behdad Esfahbod
1dd630a7f2
Minor
...
Fixes https://github.com/behdad/harfbuzz/issues/411
2017-02-01 11:57:21 -08:00
Behdad Esfahbod
8b5bc141cd
Add get_nominal_glyph() and get_variation_glyph() instead of get_glyph()
...
New API:
- hb_font_get_nominal_glyph_func_t
- hb_font_get_variation_glyph_func_t
- hb_font_funcs_set_nominal_glyph_func()
- hb_font_funcs_set_variation_glyph_func()
- hb_font_get_nominal_glyph()
- hb_font_get_variation_glyph()
Deprecated API:
- hb_font_get_glyph_func_t
- hb_font_funcs_set_glyph_func()
Clients that implement their own font-funcs are encouraged to replace
their get_glyph() implementation with a get_nominal_glyph() and
get_variation_glyph() pair. The variation version can assume that
variation_selector argument is not zero.
2016-02-24 19:05:23 +09:00
Behdad Esfahbod
ea512f7108
Use C-style casts instead of compare to 0, to convert hb_bool_t to bool
2015-11-26 19:22:22 -05:00
Behdad Esfahbod
766963adba
Merge pull request #114 from ThePhD/vc++-fixes
...
Fix all VC++ warnings and errors
2015-11-24 15:38:43 -06:00
Behdad Esfahbod
abadc1717d
Try to better handle OOM situations
...
Fixes assert fail in https://github.com/behdad/harfbuzz/issues/161
with libharfbuzz-fuzzing.
2015-11-18 17:52:08 -08:00
Behdad Esfahbod
6986208ba3
Optimize runs without Default_Ignorable's
...
Now that we have a buffer-wide scratch flags facility, use it to
optimize away a few passes.
2015-11-04 18:46:41 -08:00
Behdad Esfahbod
9cbc39aef9
Minor
2015-11-04 18:00:53 -08:00
Behdad Esfahbod
52e6c4e158
If font doesn't support U+2011, fall back to U+2010
...
Test passes now.
2015-11-04 17:45:56 -08:00
Behdad Esfahbod
75483aafa6
Untangle if/else waterfall
2015-11-04 17:43:36 -08:00
Behdad Esfahbod
49ef630936
Adjust the width of various spaces if font does not cover them
...
See discussion here:
81ef4f407d
There's no way to disable this fallback, but I don't think it would
be needed. Let's hope for the best!
Fixes https://github.com/behdad/harfbuzz/issues/153
2015-11-04 17:27:07 -08:00