Behdad Esfahbod
ea535a1dfa
[use] Update to Unicode 10
2017-10-02 17:02:39 +02:00
Behdad Esfahbod
29c244aff6
Minor
2017-10-02 16:36:21 +02:00
Behdad Esfahbod
1535f8c672
Add Unicode 10 scripts
2017-10-02 16:12:18 +02:00
Behdad Esfahbod
bdbe974f52
[indic] Update table to Unicode 10
2017-10-02 10:00:31 -04:00
Behdad Esfahbod
819cc36049
[indic] Move manual code out of generated table
2017-10-02 09:03:16 -04:00
Behdad Esfahbod
da4866f717
[arabic] Update table to Unicode 10 data
2017-10-02 08:57:06 -04:00
Behdad Esfahbod
1a0a356a0f
[indic] Categorize U+0980 BENGALI ANJI as placeholder
...
Fixes https://github.com/behdad/harfbuzz/issues/538
2017-10-02 08:49:23 -04:00
jfkthame
19e77e01bc
[shape-plan] Don't look for a cached plan if variation coords are specified. Fixes #549 . ( #550 )
...
This is a temporary hack just to avoid incorrect shaping results, pending proper support
for caching shape-plans with variation coordinates.
2017-10-02 08:08:49 -04:00
mhosken
66128d3cfb
Fix missing xscale in rtl graphite unpacking ( #541 )
...
* Fix missing xscale in rtl graphite unpacking
* Oops didn't need to mess with yscale
2017-09-26 14:29:45 -04:00
Behdad Esfahbod
3ca69c8c32
Use strtod_l() to correctly parse decimal numbers in French & other locales
...
Test with, eg.:
$ LC_ALL=fr_FR.utf-8 ./hb-view NotoSansArabic-VF.ttf بهداد --variations wght=1.2
2017-09-14 20:50:35 -04:00
Behdad Esfahbod
d03f11f246
Fix buffer_diff for empty buffers
...
If buffers are empty, content type should be ignored.
This fixes last of the failing tests: fuzzed.tests. Green again!
2017-09-04 20:14:13 -07:00
Behdad Esfahbod
7cc348041d
[unsafe-to-break] Fix unsafe-to-break for cluster-level=1
...
Fixes tests/shaping/tests/cluster.tests
2017-09-04 20:06:21 -07:00
Behdad Esfahbod
06cb162cd7
[indic] Treat Consonant_With_Stacker as consonant
...
Fixes https://github.com/behdad/harfbuzz/issues/528
"Kannada JIHVAMULIYA and UPADHMANIYA insert dotted circles"
2017-09-01 10:34:56 -07:00
Behdad Esfahbod
c449d2d8c9
[unsafe-to-break] Mark during fraction-slash formation
...
Fixes tests/automatic-fractions.tests
2017-08-30 17:28:22 -07:00
Behdad Esfahbod
099472e08b
hb_buffer_diff() tweak
...
I like to have a mode where CONTAINS_NOTDEF and CONTAINS_DOTTEDCIRCLE are not
returned. Abused a value of -1 for that. hb-shape now uses it. Fixes two
of the six tests failing with --verify in test/shaping/run-tests.sh.
2017-08-30 16:45:06 -07:00
Behdad Esfahbod
224d20e4e1
[docs] Minor
2017-08-23 14:49:10 -07:00
Behdad Esfahbod
b2dd0c1c32
Add hb_glyph_info_get_glyph_flags()
...
New API.
2017-08-23 13:12:54 -07:00
Behdad Esfahbod
3e8f4f1452
Rename HB_BUFFER_DIFF_FLAG_MASK_MISMATCH to HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH
2017-08-22 17:56:25 -07:00
Behdad Esfahbod
8820ba29df
Fix warning about "may be used uninitialized"
2017-08-15 17:12:21 -07:00
Emil A Eklund (eae)
91770e1c56
Fix signed/unsigned warning ( #522 )
...
Change hb_buffer_diff to explicitly cast result of abs to unsigned when
comparing with position_fuzz to avoid unsafe signed/unsigned comparions
warnings on windows.
2017-08-15 16:25:18 -07:00
Behdad Esfahbod
587f15ece3
Minor
2017-08-14 15:23:10 -07:00
Behdad Esfahbod
338e61ad1b
Fix typo
2017-08-14 12:36:38 -07:00
Jonathan Kew
331d66c7fe
Add function to compare two buffers
...
Based on patch from Jonathan Kew.
Needs more cleaning up and documentation.
New API:
hb_buffer_diff_flags_t
hb_buffer_diff()
2017-08-14 11:44:12 -07:00
Behdad Esfahbod
219af509ef
[graphite2] Fix warning
2017-08-13 15:10:26 -07:00
Behdad Esfahbod
239119a631
[unsafe-to-break] Mark all positions as unsafe in alternative shapers
2017-08-13 15:08:34 -07:00
Behdad Esfahbod
05fabbd03e
[unsafe-to-break] Towards verifying unsafe-to-break in --verify
...
We break and shape fragments and reconstruct shape result from them.
Remains to compare to original buffer. Going to add some buffer
comparison API and use here, instead of open-coding.
2017-08-11 20:00:55 -07:00
Behdad Esfahbod
6ce25f57c6
Fix hb_buffer_append()
...
Ouch!
2017-08-11 19:31:05 -07:00
Behdad Esfahbod
1c17c2bde5
[unsafe-to-break] Copy flag to all glyphs in a cluster
...
Makes consumption easier.
2017-08-11 19:06:07 -07:00
Behdad Esfahbod
ec104e5912
[unsafe-to-break] Mark unsafe is cluster merging is disabled
...
We were relying on cluster merges not requiring unsafe flagging because
they get merged. If cluster level requests no merging, then we flag
unsafe when merge would have happened.
2017-08-11 18:24:27 -07:00
Behdad Esfahbod
39a9749430
New API: hb_buffer_append()
2017-08-11 15:52:06 -07:00
Behdad Esfahbod
14a639ea59
[unsafe-to-break] Fix Use-of-uninitialized-value in unsafe_to_break_set_mask
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3011
2017-08-11 11:30:39 -07:00
Behdad Esfahbod
e43aad5552
[unsafe-to-break] Flag in Thai PUA shaping
2017-08-10 20:54:15 -07:00
Behdad Esfahbod
eae009602b
[unsafe-to-break] Flag in Hangul shaper
2017-08-10 20:50:48 -07:00
Behdad Esfahbod
b65aa1cd47
[unsafe-to-break] Flag during mark attachment
2017-08-10 20:32:02 -07:00
Behdad Esfahbod
882ebdadd6
[unsafe-to-break] Flag during cursive positioning
2017-08-10 20:23:17 -07:00
Behdad Esfahbod
2d158ca376
[unsafe-to-break] Flag during kerning
2017-08-10 20:20:30 -07:00
Behdad Esfahbod
a7c4972cce
[unsafe-to-break] Flag during fallback positioning
2017-08-10 20:16:15 -07:00
Behdad Esfahbod
e2a2b5b229
[unsafe-to-break] Be careful with flag propagation when merging clusters
2017-08-10 20:11:35 -07:00
Behdad Esfahbod
f2868c2008
Set mask to 0, instead of 1, by default
...
This shouldn't matter.
2017-08-10 20:10:53 -07:00
Behdad Esfahbod
9e005c5d86
[unsafe-to-break] Mark Indic-like clusters as unsafe-to-break
2017-08-10 20:10:53 -07:00
Behdad Esfahbod
5287ccc935
[unsafe-to-break] Allocate public bits from 0
2017-08-10 15:02:34 -07:00
Behdad Esfahbod
91ce0c45d6
[safe-to-break] Fix logic when there is no out-buffer
2017-08-10 15:02:34 -07:00
Behdad Esfahbod
a043c99f77
[unsafe-to-break] Simplify logic
...
Always use the algorithm for non-monotone case. It's more robust.
2017-08-10 15:02:34 -07:00
Behdad Esfahbod
40bd7e9a1c
[unsafe-to-break] Add UNSAFE_TO_BREAK flag
...
Not all shapers code is updated to set this properly.
GSUB and Arabic shaper are updated.
GPOS and other shapers are NOT.
Fixes https://github.com/behdad/harfbuzz/issues/224
2017-08-10 15:02:28 -07:00
Behdad Esfahbod
ac8c4e56d8
[ft] Fix theoretical leak
2017-08-09 22:05:08 -07:00
Behdad Esfahbod
5a33057576
Treat HAMZA ABOVE similar to SHADD for sorting purposes
...
Part of https://github.com/behdad/harfbuzz/issues/509
2017-08-09 17:23:28 -07:00
Behdad Esfahbod
68af14d5cc
Protect against div-by-zero in CBDT extent code
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1452#c5
CC https://github.com/behdad/harfbuzz/issues/139
2017-08-09 17:09:21 -07:00
Behdad Esfahbod
5dc30451b8
Two fixes to avar mapping
...
1. Handle segment with two entries correctly,
2. Fix rounding math. Ouch!
Fixes https://github.com/behdad/harfbuzz/issues/521
2017-08-07 21:37:07 -07:00
Behdad Esfahbod
dc2c418e39
[check-defs/symbols.sh] Drop empty-symbol lines
...
Fixes https://github.com/behdad/harfbuzz/issues/510
2017-08-03 12:34:15 +01:00
Ebrahim Byagowi
65f64d1400
Unbreak arm-none-eabi build again ( #514 )
2017-07-19 02:42:53 +04:30
Behdad Esfahbod
c1432bce3c
[arabic] Adjust feature order again
...
Fixes https://github.com/behdad/harfbuzz/issues/505
2017-07-14 17:35:17 +01:00
Cosimo Lupo
9813be3d12
[coretext] Allow to disable kern ( #508 )
...
* Minor
* [coretext] Fix leak
* [coretext] Do not reset num_features
* [coretext] allow to disable kern; re-enabling doesn't seem to be working
2017-07-14 17:11:46 +01:00
Behdad Esfahbod
9dd29c681e
[use] Allow up to two medial-below letters
...
Fixes https://github.com/behdad/harfbuzz/issues/376
2017-07-14 17:01:27 +01:00
Behdad Esfahbod
216b003c91
[use] Fix shaping of U+AA29 CHAM VOWEL SIGN AA
...
Part of https://github.com/behdad/harfbuzz/issues/376
Also see https://github.com/roozbehp/unicode-data/issues/6
Test added, using NotoSansCham built from Noto Phase III sources.
2017-07-14 16:38:51 +01:00
Behdad Esfahbod
f1cd7ca893
[indic] Add github URL
2017-07-14 15:59:40 +01:00
Behdad Esfahbod
3cc84f45b9
[indic] Fix https://github.com/behdad/harfbuzz/issues/478
2017-07-14 15:50:22 +01:00
Behdad Esfahbod
e359a4b8f5
[indic] Disable automatic ZWNJ handling for Indic features
...
Fixes https://github.com/behdad/harfbuzz/issues/294
Also fixes a bunch of other Indic issues. Test results after:
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951201 out of 951913 tests passed. 712 failed (0.0747968%)
KHMER: 299071 out of 299124 tests passed. 53 failed (0.0177184%)
MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
Before:
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%)
GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%)
KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%)
KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%)
MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%)
2017-07-14 14:22:52 +01:00
Behdad Esfahbod
cdf1fd0627
[indic] Add infrastructure to disable ZWNJ-skipping in context-matching
...
Not used yet.
2017-07-14 12:43:34 +01:00
Dominik Schlösser
4e21ec5469
Fix for reordering of Tibetan vowel u ( #443 )
...
* Undone change for Tibetan vowel u
* removed comment on reordering that became invalid with roll-back
* Support for Dzongkha contractions with multiple vowel-signs
* Removed non-functional and unnecessary defines for HB_MODIFIED_COMBINING_CLASS_CCC138,140
2017-07-14 12:14:23 +01:00
Ebrahim Byagowi
3b0e47ca00
Fix arm-none-eabi build ( fixes #451 ) ( #496 )
2017-06-19 14:47:09 +04:30
Ebrahim Byagowi
76c4873e8c
Support branch prediction helpers on clang compiles ( #491 )
2017-06-02 13:23:10 -04:00
Behdad Esfahbod
7dba30639a
Handle allocation failure in hb-language code
2017-06-01 11:44:42 -04:00
Sebastian Rasmussen
92e2c4baaf
Avoid using strdup inside library. ( #488 )
...
If an application provides a malloc replacement through
hb_malloc_impl() it is important that it is used to allocate
everything, but the use of strdup() circumvents this and
causes system malloc() to be called instead. This pairs
badly with the custom hb_free_impl() being called later.
2017-05-29 10:53:30 -07:00
Khaled Hosny
06cfe3f736
Do not skip TAG characters in glyph substitution ( #487 )
...
Hide them like Mongolian Free Variation Selectors instead.
Fixes https://github.com/behdad/harfbuzz/issues/463
2017-05-17 11:32:47 -07:00
Behdad Esfahbod
1817221620
Minor
2017-05-16 14:26:28 -07:00
mhosken
74b99ef224
Fix graphite2 rtl conversion ( #475 )
2017-04-20 11:13:22 -07:00
Chris Peterson
aacca37590
Fix clang -Wcomma warnings ( #471 ) ( #472 )
...
clang's new -Wcomma compiler option warns about possible misuse of the
comma operator such as between two statements.
hb-common.cc:190:9 [-Wcomma] possible misuse of comma operator here
hb-ot-layout-gsubgpos-private.hh:345:30 [-Wcomma] possible misuse of
comma operator here
hb-shape-plan.cc:438:26 [-Wcomma] possible misuse of comma operator here
2017-04-17 23:25:24 -07:00
William Hua
5ecf96e3a2
Use absolute paths of ragel generated headers ( #467 )
...
https://github.com/behdad/harfbuzz/issues/455
2017-04-16 22:33:42 -07:00
jfkthame
c04c1fe86e
Blacklist GDEF table in additional Tahoma versions. ( #459 )
...
There are more broken versions of Tahoma out there on various Windows releases,
so we need to add them to our blacklist to avoid broken rendering.
See https://bugzilla.mozilla.org/show_bug.cgi?id=1279925 for details.
2017-04-11 14:29:13 -07:00
ebraminio
adfd4ae1cf
[cmake] Improve third party libraries support ( #461 )
2017-04-11 23:18:18 +04:30
Behdad Esfahbod
a4471d0c2c
Move list of ragel sources to Makefile.sources as well
2017-04-05 15:42:11 +02:00
ebraminio
d2acaf6d72
Split ragel generated files lists and remove hardcoded rl files lists ( #453 )
2017-04-05 11:21:23 +02:00
jfkthame
740fdbcd0e
avoid UBSan warning in get_stage_lookups ( #450 )
...
See https://bugzilla.mozilla.org/show_bug.cgi?id=1336600
2017-04-03 13:22:39 +02:00
Behdad Esfahbod
edcf6344bc
Blacklist more versions of Padauk
...
Patch from Phil Race.
2017-03-24 10:24:52 -07:00
Khaled Hosny
91570a1eeb
Just always use strtod here
2017-03-22 23:07:20 +02:00
Chun-wei Fan
539571c1a9
src/hb-common.cc: Fix build on older Visual Studio
...
Visual Studio only supported strtof() from Visual Studio 2013 onwards, so
use strtod() instead to do the operation, which should do the same thing,
sans going to a double, not a float.
2017-03-22 23:03:49 +02:00
Behdad Esfahbod
47e7a1800f
Revert "Fix Context lookup application when moving back after a glyph delete"
...
This reverts commit b9b005f3a4
.
This introduced invalid access cases. Revert until I fix correctly.
2017-03-10 13:23:02 -08:00
Behdad Esfahbod
3c080a7a0a
Fix buffer serialize of empty buffer
...
Ouch!
2017-03-07 18:13:28 -08:00
Behdad Esfahbod
9ac9af725c
Add TODO item
2017-03-05 13:51:01 -08:00
Behdad Esfahbod
5aec2fb8d0
Remove TODO item that is not going to happen
2017-03-02 11:46:33 -08:00
Behdad Esfahbod
b9b005f3a4
Fix Context lookup application when moving back after a glyph delete
...
This was broken forever, since days that we did not allow moving
tape backwards. Works now. Reported by Doug Felt.
2017-03-01 14:27:23 -08:00
Behdad Esfahbod
85630996b8
Fix buffer-overrun with Bengali reph positioning code
...
This has no security implications whatsoever since we always keep
and extra element at the end of buffer, just in case.
Discovered by oss-fuzz
CC https://github.com/behdad/harfbuzz/issues/139
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=660
2017-02-25 13:32:20 -08:00
Dominik Röttsches
a657f23ca3
Blacklist another instance of Padauk ( #419 )
...
In https://crbug.com/681813 another instance of Padauk was identified
triggering collapsed glyphs. Blacklist this version by patching
hb-ot-layout.cc to print out gdef, gsub, and gpos table length, then
adding those to the list of blacklisted versions.
2017-02-20 13:52:07 -06:00
jfkthame
44f7d6ecde
Guard against underflow when adjusting length ( #421 )
...
* Guard against underflow when adjusting length
With the fuzz-testcase in mozilla bug 1295299, we end up with a recursed lookup that removes 3 items, when `match_positions[idx]` is 0, which results in (unsigned) `end` wrapping to a huge value.
Making `end` a signed int is probably the simplest route to a fix.
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1295299 .
* Add testcase for #421 .
2017-02-16 19:03:24 -08:00
jfkthame
45766b673f
[indic] Add support for Grantha marks that may be used in Tamil to th… ( #401 )
...
* [indic] Add support for Grantha marks that may be used in Tamil to the Indic table.
See https://bugzilla.mozilla.org/show_bug.cgi?id=1331339 .
Testcase: U+0BA4,U+0BC6,U+1133c,U+0BAA,U+1133c,U+0BC6,U+1133c
* [indic] Add test for Grantha nukta that is allowed in Tamil by ScriptExtensions.txt
2017-02-16 09:40:21 -08:00
Behdad Esfahbod
d4bb52b9fd
Unbreak hb-coretext build
2017-02-09 14:13:25 -08:00
Behdad Esfahbod
c8dfed8e1e
Merge pull request #357 from khaledhosny/graphite-scale
...
[graphite] Fix shaping with varying font sizes
2017-02-08 14:36:18 -08:00
Behdad Esfahbod
7c47474f20
Set LC_ALL instead of LANG when creating harfbuzz.def
...
Hopefully fixes Travis faliure?
https://github.com/behdad/harfbuzz/pull/413#issuecomment-278481882
https://travis-ci.org/khaledhosny/harfbuzz/jobs/199785332#L1065
2017-02-08 14:33:28 -08:00
Philip Withnall
ffde3c9f9e
hb-font: Fix a potentially undefined use of memcmp() ( #413 )
...
While it’s fine to call memcmp(x, 0, 0) in practice, the C99 standard
explicitly says that this is not allowed: even if the length is zero,
the pointer arguments must be valid.
http://stackoverflow.com/a/16363034
Coverity ID: 141178
Signed-off-by: Philip Withnall <withnall@endlessm.com>
2017-02-08 13:56:57 -08:00
Behdad Esfahbod
73c6dcbb45
Silence Coverity warning
...
Fixes https://github.com/behdad/harfbuzz/issues/408
2017-02-07 16:53:21 -08:00
Behdad Esfahbod
466b3e58bd
Shuffle things around a bit
2017-02-03 16:57:15 -08:00
Behdad Esfahbod
fc8189b639
Minor
2017-02-03 16:17:08 -08:00
Behdad Esfahbod
d3d3691806
Add dirty-state tracking to hb_face_t
2017-02-03 15:42:03 -08:00
Behdad Esfahbod
2171f48b4b
Add dirty-state tracking to hb_font_t
2017-02-03 10:58:09 -08:00
Behdad Esfahbod
95808bad2c
Add new API hb_font_set_face()
...
For completeness.
2017-02-03 10:39:40 -08:00
jfkthame
4ec19319ab
Add Win10 Anniversary Update version of Tahoma to GDEF blacklist. ( #412 )
2017-02-02 10:48:23 -08:00
Behdad Esfahbod
1dd630a7f2
Minor
...
Fixes https://github.com/behdad/harfbuzz/issues/411
2017-02-01 11:57:21 -08:00
Behdad Esfahbod
e888f642db
Route Adlam through Arabic shaper
...
Fixes joined Adlam rendering.
Fixes https://github.com/googlei18n/noto-fonts/issues/828
2017-01-26 14:50:14 -08:00
jfkthame
72c754873c
Add Win7 version of himalaya.ttf to the GDEF table blacklist. ( #407 )
2017-01-26 14:35:41 -08:00
Behdad Esfahbod
22af28a3f1
[var] Implement MVAR table
...
Unhooked. Untested.
2017-01-23 23:42:53 -08:00
Behdad Esfahbod
67a191164d
[var] Whitespace
2017-01-23 23:21:30 -08:00
Behdad Esfahbod
79e8e27ffd
[var] Hook up advance variations to hb-ot-font
...
Yay, works!
2017-01-23 17:57:27 -08:00
Behdad Esfahbod
6074340371
[var] Fix bug in HVAR/VVAR impl
2017-01-23 17:55:16 -08:00
Behdad Esfahbod
bd3b11d926
[var] Prepare for hooking up advance variations to hb-ot-font
2017-01-23 17:37:19 -08:00
Behdad Esfahbod
a4fca9f005
[var] Implement DeltaSetIndexMap and advance delta fetching
...
Not hooked up to hb-ot-font yet.
2017-01-23 12:25:40 -08:00
Behdad Esfahbod
7b399f73ef
[var] Start adding HVAR/VVAR
2017-01-23 11:41:43 -08:00
Behdad Esfahbod
b732c53eb5
Add LArrayOf<>
2017-01-22 20:31:53 -08:00
Behdad Esfahbod
5e156fa5ed
Add LOffsetTo<>
2017-01-22 20:28:56 -08:00
Behdad Esfahbod
d6bdbbca30
[var] Remove HB_OT_TAG_fvar/avar
...
We're not going to define public macros for tags for tables.
There's little use to those and they are implementation detail.
2017-01-22 20:16:51 -08:00
Behdad Esfahbod
a11d9a0466
Minor
2017-01-22 20:11:57 -08:00
Behdad Esfahbod
7a860f656e
[var] Add macros for standard axes
2017-01-22 19:52:09 -08:00
Behdad Esfahbod
a484e237b1
[var] Implement 'avar' table mapping
...
Untested!
2017-01-22 19:41:33 -08:00
Behdad Esfahbod
5ec96d30ca
[var] Adjust API in prep for 'avar' implementation
...
The 'avar' table does not allow random access to axis maps,
so change API to avoid quadratic-time implementation.
Removed -hb_ot_var_normalize_axis_value(), added
+hb_ot_var_normalize_variations() and
+hb_ot_var_normalize_coords() instead.
2017-01-22 18:52:00 -08:00
Behdad Esfahbod
8a577aaa0d
[var] Stub implementation of avar table
2017-01-22 18:22:40 -08:00
Behdad Esfahbod
7647a05a0b
Minor
2017-01-22 17:47:49 -08:00
Behdad Esfahbod
d2f249e745
Stub out doc comments for new symbols
2017-01-22 17:42:33 -08:00
Behdad Esfahbod
5dfd341f51
Minor
2017-01-22 16:55:40 -08:00
Behdad Esfahbod
825e40407d
[hb-ft] Remove use of variable-length array
...
Hopefully also fixes build failure on msvc.
2017-01-22 16:41:45 -08:00
Behdad Esfahbod
47ee34e847
[var] Hook up variations to FreeType face
...
hb-view correctly renders variations with ft font-funcs now.
hb-ot-font needs HVAR implementation.
2017-01-21 18:10:08 -08:00
Behdad Esfahbod
bb1e19268f
[var] Rename var_coord to variation
...
Looks much better.
2017-01-21 17:42:50 -08:00
Behdad Esfahbod
64fe92bf2d
[var] Remove use of variable-length arrays
2017-01-21 15:36:35 -08:00
Behdad Esfahbod
2491134b38
[var] Add hb_font_set_var_coords()
2017-01-21 15:21:50 -08:00
Behdad Esfahbod
113393efec
Remove a few unused includes
2017-01-21 15:12:03 -08:00
Behdad Esfahbod
2d40923ca9
Minor
2017-01-21 15:06:15 -08:00
Behdad Esfahbod
8b2a580470
[var] Add hb_font_set_var_coords_design()
2017-01-21 15:05:00 -08:00
Behdad Esfahbod
0dcc7b49a8
[var] Minor lifecycle adjustment
2017-01-21 14:50:22 -08:00
Behdad Esfahbod
bf0d3a665b
[var] Add hb_font_get_var_coords_normalized()
2017-01-21 14:48:46 -08:00
Behdad Esfahbod
b3c0714b4b
[var] Add hb_var_coord_t and parsing routines
2017-01-20 20:30:03 -08:00
Behdad Esfahbod
72364103bc
Move code around
2017-01-20 20:16:53 -08:00
Behdad Esfahbod
785982bf83
[var] Flesh out some more
2017-01-20 20:05:45 -08:00
Behdad Esfahbod
422c0c36c8
[var] Flesh out a bit
2017-01-20 19:14:54 -08:00
Behdad Esfahbod
b8376b1090
Minor
2017-01-20 18:19:28 -08:00
Behdad Esfahbod
f2e73d37e7
[var] Remove over-optimization
2017-01-20 17:42:18 -08:00
Behdad Esfahbod
469926cc45
[var] Change double to float in API
2017-01-20 17:40:46 -08:00
Behdad Esfahbod
55d42fd667
Start adding hb-ot-var.h and implementation
...
Supports enumerating variation axes, normalizing values, etc.
2017-01-19 19:35:48 -08:00
Behdad Esfahbod
272b511532
Minor
2017-01-19 19:33:07 -08:00
Khaled Hosny
2452543fdd
[ot] Fix automatic fraction for RTL scripts ( #405 )
...
The numbers for right-to-left scripts are processed also from right to
left, so the order of applying “numr” and “dnom” features should be
reversed in such case.
Fixes https://github.com/behdad/harfbuzz/issues/395
2017-01-18 12:48:13 -08:00
Sascha Brawer
1337428e4f
Update language tags to OpenType 1.8.1 ( #403 )
...
Resolves https://github.com/behdad/harfbuzz/issues/324
2017-01-18 04:51:02 -08:00
Behdad Esfahbod
784d1180de
Fix build with clang
2017-01-11 11:58:13 -08:00
Behdad Esfahbod
1f810daf16
Port math table to hb_lazy_table_loader_t
2017-01-09 23:50:56 -08:00
Behdad Esfahbod
ebbcc11122
Add hb_lazy_table_loader_t
2017-01-09 22:47:47 -08:00
Behdad Esfahbod
1af9d924a4
Move lazy-loader to more generic place
2017-01-09 22:22:37 -08:00
Behdad Esfahbod
ac274331c2
In lazy-loading, remember allocation failure
2017-01-09 22:20:38 -08:00
Behdad Esfahbod
29fb0cb727
Minor
2017-01-09 21:18:55 -08:00
Behdad Esfahbod
93ef684b9b
Rename hb-ot-layout-math-table.hh to hb-ot-math-table.hh
2017-01-09 21:11:00 -08:00
Behdad Esfahbod
3b5263b0e9
Typo
2017-01-09 15:49:08 -08:00
Behdad Esfahbod
00adf9c8a4
Minor
...
Should be enough to get -hangul.cc out of SOURCES in Firefox build:
https://dxr.mozilla.org/mozilla-central/source/gfx/harfbuzz/src/moz.build
No one else should care!
2017-01-09 00:00:49 -08:00
Behdad Esfahbod
7cf9952e7f
[USE] Remove non-canonical decompositions
...
We have had added this in Indic shaper to assist shaping these scripts.
In Universal Shaping Engine however, it is up to font designer to
decompose them. Hence moving them from Indic shaper to USE was
wrong.
Fixup for f6ba63b2e8
Part of fixing https://github.com/behdad/harfbuzz/issues/387
2017-01-08 23:55:54 -08:00
Khaled Hosny
b435c7c46a
[graphite] Stop creating unused gr_face
...
It is unused after previous commit, hb_graphite2_font_get_gr_font()
makes no sense now so deprecating it.
2017-01-07 01:57:28 +02:00
Khaled Hosny
1b00a3b048
[graphite] Fix shaping with varying font sizes
...
Shape using design units and scale the output.
See https://bugs.documentfoundation.org/show_bug.cgi?id=103403#c7
2017-01-07 01:57:28 +02:00
Behdad Esfahbod
53543f8b3e
Ship UCDN and use it by default
...
So we are not relying on version of Unicode data in glib...
Fixes https://github.com/behdad/harfbuzz/issues/386
Fixes https://github.com/behdad/harfbuzz/issues/388
2017-01-05 20:12:32 -08:00
Frédéric Wang
ae00af4a47
Move math-specific code from hb-ot-layout to hb-ot-math #235 ( #384 )
2017-01-02 23:55:09 -05:00
Behdad Esfahbod
6cff753941
Remove Tibetan decomposition rules from Indic shaper
...
The decomposition is very obscure and unlikely to help
any fonts. Just remove it since Uniscribe probably doesn't
do this either.
Fixes https://github.com/behdad/harfbuzz/issues/382
2016-12-28 13:47:13 -05:00
Behdad Esfahbod
f6ba63b2e8
Port decompositions from Indic to USE shaper
...
Part of https://github.com/behdad/harfbuzz/issues/382
2016-12-28 13:45:32 -05:00
Behdad Esfahbod
e678b537f7
[indic] Remove Chakma decomposition rule from Indic shaper
...
This is now added to USE:
https://github.com/behdad/harfbuzz/pull/383
See:
https://github.com/behdad/harfbuzz/issues/381
https://github.com/behdad/harfbuzz/issues/382
2016-12-28 13:40:55 -05:00
jfkthame
49ba698124
[use] Special-case Chakma split-vowel decomp in the USE shaper. ( #383 )
2016-12-28 13:00:51 -05:00
Behdad Esfahbod
c4ca49d55b
Revert "[indic] Remove redundant Chakma decomposition rule"
...
This reverts commit 805f76fc00
.
Need to investigate why having this rule (with the reversed order)
fixes decomposition as reported by punchcutter:
https://github.com/behdad/harfbuzz/issues/381#issuecomment-269237796
2016-12-26 14:52:08 -05:00
Behdad Esfahbod
805f76fc00
[indic] Remove redundant Chakma decomposition rule
...
This was not used BTW since Chakma doesn't go through Indic shaper
anymore.
See:
https://github.com/behdad/harfbuzz/issues/381
https://github.com/behdad/harfbuzz/issues/382
2016-12-26 14:12:39 -05:00
Behdad Esfahbod
3cc48a46b5
[indix] Comment
2016-12-26 13:16:56 -05:00
nvelinov
7d1c5d8281
Compilation Error for ASSERT_STATIC on Some Compilers ( #380 )
...
* this pointer in type definitions is not interpreted as a constant.
This rule is not enforced strictly by all compilers, but the Green Hills Software compiler will regard this as an error.
* Merging branches for the DEFINE_SIZE_UNION macro
Adding check for the existence of static_size field in the tested member.
2016-12-23 19:46:37 -06:00
Behdad Esfahbod
e2b878055b
Disable OTL processing for Hebrew if GPOS doesn't have Hebrew subtable
...
New approach to fix this:
69f9fbc420
Previous approach was reverted as it was too broad. See context:
https://github.com/behdad/harfbuzz/issues/347#issuecomment-267838368
With U+05E9,U+05B8,U+05C1,U+05DC and Arial Unicode, we now (correctly) disable
GDEF and GPOS, so we get results very close to Uniscribe, but slightly different
since our fallback position logic is not exactly the same:
Before: [gid1166=3+991|gid1142=0+737|gid5798=0+1434]
After: [gid1166=3+991|gid1142=0@402,-26+0|gid5798=0+1434]
Uniscribe: [gid1166=3+991|gid1142=0@348,0+0|gid5798=0+1434]
2016-12-22 14:43:23 -06:00
Behdad Esfahbod
1a0f4aa6df
Revert "Synthesize GDEF glyph class for any glyph that does not have one in GDEF"
...
This reverts commit 69f9fbc420
.
See https://github.com/behdad/harfbuzz/issues/347#issuecomment-268873401
Fixes https://github.com/behdad/harfbuzz/issues/347
2016-12-22 14:43:14 -06:00
Behdad Esfahbod
4b4a1b9f23
Fix assert fail with contextual matching
...
As discovered by libFuzzer / Chromium fuzzing.
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=659496
CC https://github.com/behdad/harfbuzz/issues/139
2016-12-21 23:14:16 -06:00
Behdad Esfahbod
df98ce5fc8
Improve debug output with really deep nesting
2016-12-21 19:27:30 -06:00
Behdad Esfahbod
eab418c5e6
Avoid infinite loop in CoverageFormat2 iteration with bad fonts
...
Fixes https://github.com/behdad/harfbuzz/issues/363
2016-12-21 15:51:28 -06:00
Behdad Esfahbod
7ed71eb347
Protect collect_glyphs() and closure() against malicious DDOS fonts
...
Fixes https://github.com/behdad/harfbuzz/issues/363
2016-12-20 15:01:16 -06:00
Mike Hommey
1c98ff87c7
Support building with older glib versions
...
It is desirable to be able to build against older versions of glib.
fd7a245
changed the configure check to require glib > 2.38 for
G_TEST_DIST. Before that, version 2.16 was required, but in fact,
since aafe395
, G_PASTE is being used, which was introduced in 2.19.1.
And since 0ef179e2
, hb-glib uses GBytes, which were introduced in
2.31.10.
2.19.1 is rather old, but 2.38 is rather new. For Firefox, building
against 2.22 is still supported, although we could probably get away
with bumping that to 2.28. Either way, GBytes is not available.
Arguably, if you build against a glib that doesn't support GBytes,
you're not going to use the hb_glib_blob_create function, so we hide
the function when building against such a glib.
As for G_TEST_DIST, when building against versions of glib that don't
support it, we can fallback to the previous behavior, which, AIUI, was
just making the test not work when building in a separate directory.
2016-12-18 01:37:07 -06:00
Volker H. Simonis
ad273881c5
Minor fixes to pacify Coverity code scan
...
Fixes https://github.com/behdad/harfbuzz/pull/377
2016-12-18 00:14:06 -06:00
ebraminio
1e1825bf47
[dwrite] Provide an experimental API for justification ( #279 )
2016-12-17 10:30:40 +03:30
Behdad Esfahbod
219cb29c5d
Fix build after rebasing opentype-gx branch on top of MATH table
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
0aedfd59be
[GX] Apply 'rvrn' feature before any other feature
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
42c8142531
[GX] Fix build with older FreeType
2016-12-16 19:06:26 -06:00
Sascha Brawer
72873cf522
Call hb_font_set_var_coords_normalized() from FT_Face coords
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
4ebbeb7c50
[GX] Make FeatureVariations actually work
...
Yay!!!!
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
72ada4f0c6
[GX] Hook up feature variations
...
Shape-plan caching is not implemented.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
ec87ba9ba3
[GX] Add hb_ot_layout_feature_with_variations_get_lookups()
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
30c42b644e
[GX] Add hb_ot_layout_table_find_feature_variations()
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
7ceadbe981
Shuffle code around
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
bde5e3959c
Move add_lookups from map to map-builder
...
In prep for more changes.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
26648cebcd
[GX] Remove (partial) support for anisotropic variations
...
It doesn't always work, not part of FreeType, and we were not going
to expose it in the API anyway. Can always be added later.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
c22176d4ba
[GX] Handle setting var coords to NULL
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
59055b5494
[GX] Implement Feature Variations
...
Not hooked up to shaper yet.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
85ec494434
[GX] Fix another x/y thinko
...
Thanks Werner!
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
cf3de4d8f7
[GX] Rename VarStore to VariationStore
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
1f6ed356e0
[GX] Fix build with some compilers
...
Eg. https://ci.appveyor.com/project/behdad/harfbuzz/build/1.0.48/job/o9mnd33kcdeeg30r
hb-open-type-private.hh:103:29: error: static data member 'OT::Device::<anonymous union>::<anonymous struct>::static_size' in unnamed class [-fpermissive]
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
250bcd6fb6
[GX] Skip tail zero entries when setting variation coordinates
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
1124d2ece5
[GX] Fix thinko
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
ad69e8f07c
[GX] Add new API hb_font_set_var_coords_normalized()
...
Will probably change.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
151d93de8a
[GX] Hook up GPOS to Variation Store stored in GDEF
...
Untested.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
dcfd309533
[GX] Change GDEF API to return varStore
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
49cb87850c
[GX] Pass apply-context down to get_anchor()
...
Needed to access GDEF for varStore.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
f0c3fd8c9a
[GX] Add varStore member to GDEF
...
Still not hooked up from GPOS.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
5c971f8dbc
Minor change to GDEF, in prep for new version
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
dc9f229799
[GX] Port variation stuff to Variation Store design
...
Not hooked up to GDEF yet.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
a7edeb6f02
Make OffsetArrayOf take OffsetType template argument
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
8dddc231cf
[GX] Revert "[GX] Add VariationAlternates, to allow conditional lookups in GSUB/GPOS"
...
This reverts commit 2859f1c7174d6f7ae5dcf0db5411bc0182b21594.
We are going in a different direction.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
bb4d2e6ed5
[GX] Free GX coordinates
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
baa329c6a1
[GX] Add compact VariationDevice implementation
...
Add compact format that uses signed bytes instead of shorts.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
71b06fd392
[GX] Add VariationAlternates, to allow conditional lookups in GSUB/GPOS
...
Not hooked up to runtime yet.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
976eeb8e02
[GX] Minor
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
ed8a9067ca
[GX] Minor
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
15c5ee6747
[GX] Minor rename
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
4c535a822f
[GX] Hookup VariationDevice to Device table implementation
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
a0c2366075
[GX] Break out early if factor is zero
...
Also disable sanity-checking of variation records.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
ca28670316
[GX] Towards anisotropic interpolation
...
Also hookup to ValueRecord and Anchors.
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
6d9d3c55bb
[GX] Add data types for encoding numerical variations
2016-12-16 19:06:26 -06:00
Behdad Esfahbod
e4bfccfb2a
[CBDT] Minor
2016-12-04 19:45:46 -08:00
Behdad Esfahbod
b7068af423
[CBDT] Fix thinko!
2016-12-04 19:36:30 -08:00
Behdad Esfahbod
a141d1da9b
[CBDT] Implement IndexSubtableFormat3
2016-12-04 19:26:54 -08:00
Behdad Esfahbod
9eda74c92c
[cbdt] Move some more code around
2016-12-04 19:12:52 -08:00
Behdad Esfahbod
654f9ab0d8
[cbdt] Fix sign bug
...
Was introduced in d495fc5e38
2016-12-04 18:56:24 -08:00
Behdad Esfahbod
c27d6fcf8d
[cbdt] Last of sanitization fixes
...
Should be all good now..
2016-12-02 22:43:05 -08:00
Behdad Esfahbod
d495fc5e38
[cbdt] Clean up some more
...
Almost there..
2016-12-02 21:52:33 -08:00
Behdad Esfahbod
ce09e90e15
[cbdt] More sanitize work
2016-12-02 20:12:57 -08:00
Behdad Esfahbod
70eb2ff682
Check for offset overflows during sanitize
2016-12-02 19:51:23 -08:00
Behdad Esfahbod
4b58c9e326
[cbdt] Start fixing sanitization (or lack thereof)
2016-12-02 19:25:54 -08:00
Behdad Esfahbod
b92ba7bafc
[CBDT] Use CHAR instead of int8_t
2016-12-02 15:21:43 -08:00
Behdad Esfahbod
efca7bf97f
Rename 'ebdt' to 'cbdt' since we only support the PNG format
2016-12-02 15:11:37 -08:00
Seigo Nonaka
831852594b
Introduce get_extent support for color bitmap font. ( #351 )
...
hb_font_get_glyph_extents now works for color bitmap fonts.
Currently only font having index format 1 and image format 17
is supported.
2016-12-02 17:03:50 -06:00
Behdad Esfahbod
2b117720c0
Use horizontal ascent as fallback vertical origin
2016-10-26 18:12:50 +02:00
Behdad Esfahbod
a7b32f2057
Move code around
2016-10-26 18:08:41 +02:00
Behdad Esfahbod
63635c763d
[hb-ot-font] Use ascent+descent as fallback vertical advance
2016-10-26 18:01:24 +02:00
Behdad Esfahbod
9ee23c49a7
Fix vertical glyph origin with hb-ot-font
2016-10-26 18:01:24 +02:00
Behdad Esfahbod
b3b0816d5f
Fix vertical font metrics
...
Ouch!
2016-10-26 18:01:20 +02:00
Behdad Esfahbod
0e79ebb3ca
[gobject] Update for new MATH structs
2016-10-26 10:32:48 +02:00
Ebrahim Byagowi
bef240b36e
[ci] Whitelist more symbols and unbreak mac CI
...
Thanks to @khaledhosny, actually this is his work :)
2016-10-11 17:12:08 +03:30
Behdad Esfahbod
d1c62370a0
Aim math API for 1.3.3 instead of 1.4.0
2016-10-04 14:47:12 -07:00
Khaled Hosny
7adbc5dd62
Fix building math docs ( #335 )
2016-09-30 04:01:24 -07:00
Behdad Esfahbod
c3e21a6620
[MATH] Fix more docs
2016-09-27 16:51:38 +02:00
Behdad Esfahbod
46cc4a3a2a
[MATH] Rename hb_math_*_t types to hb_ot_math_*_t
...
With this, I believe MATH table API is not ready to be merged.
2016-09-27 16:44:22 +02:00
Frédéric Wang
0762b35474
Document API for MathVariants ( #330 )
2016-09-27 15:28:35 +02:00
Behdad Esfahbod
bc19f7fe20
[MATH] Add HB_OT_MATH_SCRIPT
2016-09-27 10:58:08 +02:00
Behdad Esfahbod
86106c7528
[MATH] Rename all API to hb_ot_math_*
2016-09-26 22:14:29 +02:00
Behdad Esfahbod
1ba767cd4e
[MATH] Move API from hb-ot-layout.h to hb-ot-math.h
2016-09-26 21:57:14 +02:00
Behdad Esfahbod
97b72da600
Whitespace
2016-09-26 21:53:25 +02:00
Behdad Esfahbod
559eb56447
[MATH] Wire up get_glyph_assembly()
2016-09-26 21:46:05 +02:00
Behdad Esfahbod
353f455af7
[MATH] Wire up get_glyph_variants()
2016-09-26 21:25:00 +02:00
Behdad Esfahbod
7fe0e28c22
[MATH] Start fleshing out glyph variant API
2016-09-26 17:51:47 +01:00
Behdad Esfahbod
1f3327f210
[MATH] Clean up math variants
2016-09-26 16:10:08 +01:00
Frédéric Wang
51da7a1cd6
MATH table: Add API to access math variants.
2016-09-26 15:18:16 +01:00
Behdad Esfahbod
8d58e3433e
[MATH] Fix get_kerning() with negative y-scale
2016-09-26 13:39:58 +01:00
Behdad Esfahbod
94f5df5626
[MATH] Clean up get_kerning()
2016-09-26 13:31:47 +01:00
Behdad Esfahbod
17ff30e9af
[MATH] Clean up get_top_accent_attachment()
...
Note, the function now returns "half of horizontal advance width"
if top accent attachment for glyph is not explicitly defined.
This is what the spec requires. Updated tests.
2016-09-26 12:21:27 +01:00
Behdad Esfahbod
8bcf517fe5
[MATH] Clean up get_italics_correction()
2016-09-26 12:13:14 +01:00
Behdad Esfahbod
06003f71ba
[MATH] Clean up a bit more
2016-09-26 12:07:29 +01:00
Behdad Esfahbod
54c0cc38fb
[MATH] Clean up get_math_constant implementation
2016-09-26 11:56:40 +01:00
Behdad Esfahbod
8a8cfad9a0
[MATH] Cleanup previous commit a bit
2016-09-26 11:51:07 +01:00
Frédéric Wang
d7182d1296
MATH Table: Add API to access glyph info.
2016-09-26 11:32:25 +01:00
Behdad Esfahbod
6fd2fe418d
[MATH] Fixup math constants commit a bit more
2016-09-26 11:24:39 +01:00
Behdad Esfahbod
1a381153a2
[MATH] Fixups for math constants commit
2016-09-26 11:15:59 +01:00
Frédéric Wang
319ff59161
MATH Table: Add API to access math contants.
2016-09-26 10:49:09 +01:00
Behdad Esfahbod
4d3892e9b0
[MATH] Fixups for previous commit
2016-09-26 10:45:58 +01:00
Frédéric Wang
5fbcb992bd
MATH Table: Add API to check availability of math data.
2016-09-26 10:27:33 +01:00
Ebrahim Byagowi
fc4e671f31
[coretext] Use intended coretext version check logic ( #315 )
2016-09-09 11:58:28 -07:00
Khaled Hosny
4867734528
Try to unbreak building on older macOS again ( #314 )
2016-09-07 18:44:37 -07:00
Dominik Röttsches
b717cd7be5
Do reconfigure the cascade list for Emoji font on OS X 10.9.5 ( #313 )
...
This seems to fix crash issues on 10.9.5 reported on Chrome, compare
crbug.com/549610
2016-09-07 13:56:57 -07:00
Dominik Röttsches
67e9fdf427
Blacklist Padauk 2.80 and 3.00 ( #311 )
...
According to comments in issue #305 broken GDEF tables lead
to incorrect rendering of Latin characters. Blacklisting
this font.
2016-09-05 01:27:25 -07:00
Ebrahim Byagowi
5362ce6a64
[dwrite] Minor, don't include unnecessary headers ( #309 )
2016-09-01 08:35:45 -07:00
Khaled Hosny
3d976d20f1
Show the shaper name in the debug message ( #306 )
2016-08-27 16:38:42 +03:00
Sascha Brawer
e7ecbba2cc
Support Americanist Phonetic Notation
...
OpenType language system tag: `APPH`
https://www.microsoft.com/typography/otspec/languagetags.htm
IETF BCP47 variant tag: `fonnapa`
http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
2016-08-18 14:13:26 +02:00
Khaled Hosny
a0f1b44b6c
[coretext] Blind fix for build on MacOS 10.9
2016-08-16 03:09:04 +02:00
Behdad Esfahbod
37f21bdbb7
Map Macao to ZHH lang tag
...
Fixes https://github.com/behdad/harfbuzz/issues/300
2016-08-08 17:57:06 -07:00
Behdad Esfahbod
09c7a2d6bf
Limit bits-per-feature to eight
...
Limits number of alternatives per glyph per feature to 255, so be it.
That's better than possibly breaking shaping because of one bad feature
value.
2016-08-08 17:29:30 -07:00
Behdad Esfahbod
333173103b
Fix sign of shift operators
...
This one:
map->mask = (1 << (next_bit + bits_needed)) - (1 << next_bit);
before the fix, the shift was done as an int, causing overflow
if it ever got to 1 << 31. Sprinkle 'u's around.
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=634805
2016-08-08 17:28:14 -07:00
Behdad Esfahbod
10a0d4aa22
Map zh-Hant-HK to ZHH
...
Fixes https://github.com/behdad/harfbuzz/issues/300
2016-08-08 16:51:08 -07:00
Behdad Esfahbod
489acf6c31
[coretext] "Fix" crashes on CoreText < 10.10
...
Fixes https://github.com/behdad/harfbuzz/issues/297
2016-07-22 17:41:43 -07:00
Behdad Esfahbod
08c08af2f9
[ucdn] Update to Unicode 9.0.0
...
Fixes https://github.com/grigorig/ucdn/issues/12
2016-07-21 01:35:30 -07:00
jfkthame
f3f6c1ccbf
Blacklist GDEF tables of more fonts
...
This is based on bug reports that have been filed against Firefox since it
updated to a version of harfbuzz that uses zeroing by GDEF rather than by
Unicode. I'm sure there are a bunch more font versions that should also be
included; these are just the ones I have on hand and have confirmed as having
bad GDEF data.
Given how the list here is growing, I think we should reconsider the approach,
and perhaps revert to zeroing by Unicode instead.
Fixes https://github.com/behdad/harfbuzz/issues/264
Fixes https://github.com/behdad/harfbuzz/pull/266
2016-07-21 01:15:12 -07:00
Behdad Esfahbod
34f9aa582c
Implement symbol cmap in ft and ot fonts
...
Fixes https://github.com/behdad/harfbuzz/issues/236
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=627953
2016-07-20 02:35:54 -07:00
Behdad Esfahbod
6363d7df28
Clean up buffer area when rewinding
...
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=614647
If allocation fails, we might be leaving junk behind. At least
clear it up.
2016-07-20 01:44:47 -07:00
Behdad Esfahbod
f80c34eb55
Whitespace
2016-07-12 11:18:26 -07:00
Ebrahim Byagowi
874421203e
[coretext] Speculative fix for CoreText nullptr access ( #288 )
2016-07-11 16:19:21 -07:00
Birunthan Mohanathas
6bf9db4f1e
[ft] Fix unsafe cast of FT_Done_Face in hb_ft_{face,font}_create_referenced ( #289 )
...
Prior to this change the function `FT_Error FT_Done_Face(FT_Face *)` was
called through a pointer with the signature `void (void *)` resulting in
undefined behaviour.
2016-07-11 13:38:23 -07:00
Steve Lhomme
0b8f3ab022
clang in MSVC mode doesn't like when we redefine __attribute__ ( #283 )
2016-07-11 12:57:26 -07:00
Khaled Hosny
e4d451ee55
[introspection] Fix hb_tag_from_string annotation
2016-07-02 00:04:57 +02:00
Behdad Esfahbod
d3e2a06b0f
[python] Use utf-32 / utf-16 based on build of Python
...
Fixes https://github.com/behdad/harfbuzz/pull/271
2016-06-30 11:01:22 -07:00
Behdad Esfahbod
fc9de44a03
Comments
2016-06-30 09:46:52 -07:00
Dominik Röttsches
1bea49eb4b
Merge branch 'master' into conflictingFontFix
2016-06-29 12:10:41 +02:00
Behdad Esfahbod
70e72e5f61
[gobject] Fix a few warnings
...
Part of https://github.com/behdad/harfbuzz/issues/277
2016-06-28 21:15:36 -07:00
Behdad Esfahbod
ae9054c740
Revert "use utf32"
2016-06-28 21:14:38 -07:00
Dominik Röttsches
7aa3631dd0
Merge branch 'master' into conflictingFontFix
2016-06-28 09:52:18 +02:00
Ebrahim Byagowi
8179ff5d7b
[dwrite] Don't allocate more than needed
...
Addressing Nikolay Sivov reviews on harfbuzz mailing list
2016-06-27 03:58:49 +04:30
Ebrahim Byagowi
07b724f341
[dwrite] Delete remained objects
...
No longer noticeable memory increase on create/destroy iterations,
highly better than current state of uniscribe backend
2016-06-24 14:29:24 +04:30
Ebrahim Byagowi
be565d1714
[dwrite] Release allocated blob on face destroy
...
This reduces memory consumption of my iterated font create/destroy cycle test
significantly and makes it much better than uniscribe backend even
2016-06-24 11:46:53 +04:30
Ebrahim Byagowi
f3f0ea980a
[dwrite] Remove ifdefs without breaking execution on old Windows versions
2016-06-23 17:26:55 +04:30
Ebrahim Byagowi
6b861dbd8b
[dwrite] Use stream font loader instead GDI interop
...
With help of
https://dxr.mozilla.org/mozilla-central/source/gfx/2d/NativeFontResourceDWrite.cpp
2016-06-23 15:57:34 +04:30
Dominik Röttsches
f7da0486ed
Merge branch 'master' into conflictingFontFix
2016-06-20 10:25:43 +03:00
Kelvin
07461d06d2
Use UTF-32 in Python sample
2016-06-19 01:46:38 +03:00
Dominik Röttsches
a0223274b9
Discard reconfigured CTFont if URL changes
...
Fixes https://github.com/behdad/harfbuzz/issues/267
2016-06-16 14:19:39 +02:00
Behdad Esfahbod
4b8de1ea80
Round, not truncate, when scaling values
...
Fixes https://github.com/behdad/harfbuzz/issues/255
2016-06-06 23:08:54 -07:00
Behdad Esfahbod
bed201d2b8
Update for latest Unicode 9 data files
2016-06-06 14:14:24 -07:00
Behdad Esfahbod
aba4b0ca52
Add TODO
2016-06-01 16:57:29 -07:00
Behdad Esfahbod
a2b03de5b3
[myanmar] Handle U+AA74..U+AA76
...
Fixes https://github.com/behdad/harfbuzz/issues/218
2016-05-06 17:56:07 +01:00
Behdad Esfahbod
9b6312f945
[use] Update to draft spec from Andrew Glass from August 2015
2016-05-06 17:41:49 +01:00
Behdad Esfahbod
3e4e7616a8
[use] Add a catch-all clause to the machine
2016-05-06 17:28:25 +01:00
Behdad Esfahbod
d04e461fe3
[use] Fix 'Number-joiner terminated cluster' to use HN instead of H
...
From draft update to USE.
2016-05-06 17:17:00 +01:00
Behdad Esfahbod
359dead960
Allow MultipleSubst to delete glyph
...
Fixes https://github.com/behdad/harfbuzz/issues/253
Hopefully we got the logic right.
2016-05-06 16:19:19 +01:00
Behdad Esfahbod
3c1666cfb5
[indic] Remove more unused logic after Javanese is gone
2016-05-06 16:05:07 +01:00
Behdad Esfahbod
8b5d6e755b
[indic] Remove unused Javanese bits
2016-05-06 15:59:27 +01:00
Behdad Esfahbod
30e6e29f0f
[indic/use] Move Javanese from Indic shaper to USE
...
Fixes https://github.com/behdad/harfbuzz/issues/243
With javatext.ttf, the reodering medial Ra gets its advance width
zero'ed in Uniscribe implementation, and the font adds the advance
back. Our Indic shaper does not do that, but USE does. So, route
Javanese through USE. That's what Microsoft does anyway. Test:
U+A9A5,U+A9BA
This also seems to fix the following sequence, and variations thereof:
U+A99F,U+A9C0,U+A9A2,U+A9BF
2016-05-06 15:52:27 +01:00
Behdad Esfahbod
01a30a6aa9
[indic] Remove data for scripts that don't go thorough this shaper
2016-05-06 12:10:07 +01:00
Behdad Esfahbod
7cd9269f4e
Update tables to Unicode 9.0.0 beta
...
Fixes https://github.com/behdad/harfbuzz/issues/251
2016-05-06 12:10:03 +01:00
Behdad Esfahbod
f718fe370e
Minor
2016-05-06 12:10:00 +01:00
Behdad Esfahbod
691086f131
Add Unicode 9 beta scripts
...
These are frozen, so good time to add.
2016-05-06 12:09:53 +01:00
Behdad Esfahbod
bc5198fe12
Whitespace
2016-05-06 12:09:49 +01:00
Behdad Esfahbod
9879fc1db3
[ot-font] Remove unused 'post' table include for now
...
To make a release...
2016-05-02 10:29:12 +02:00
Behdad Esfahbod
f00ab2a33a
[hb-ot-font] Make 'glyf' table loading lazy
...
Apparently some clients have reference-table callbacks that copy the table.
As such, avoid loading 'glyf' table which is only needed if fallback positioning
happens.
2016-05-02 10:24:00 +02:00
Behdad Esfahbod
587d46227a
[ot-font] Start implementing 'post' table, for accessing glyph names
2016-04-30 19:20:56 +02:00
Behdad Esfahbod
9abaaac409
Merge commit '264b7a728a41becfbf23ce258fc2a3af19d0cbbe' into HEAD
2016-04-27 03:38:24 -07:00
Behdad Esfahbod
2f560ee44b
[tibetan] Reorder marks to better match Uniscribe
...
Fixes https://github.com/behdad/harfbuzz/issues/237
Note that Uniscribe enforces a certain syllable order. We don't.
But with this change, I get all of the tibetan contractions pass
with Microsoft Himalaya font.
2016-04-27 03:11:41 -07:00
Arthur Reutenauer
adafdcddce
Mass-added “difficult” tags – to be curated.
2016-04-27 02:14:16 +02:00
Arthur Reutenauer
3d6a2c0d7d
Initial import of missing OpenType 1.7 language tags.
2016-04-27 02:14:16 +02:00
Behdad Esfahbod
7e2da035f6
Undo accidental change
2016-04-26 16:42:25 -07:00
Behdad Esfahbod
b20305022a
Do NOT ignore Mongolian Free Variation Selectors during matching
...
Fixes https://github.com/behdad/harfbuzz/issues/234
2016-04-26 16:41:17 -07:00
Behdad Esfahbod
21ab5501f5
Move ZWJ/ZWNJ bits to top byte of unicode_props()
...
To make room to remember Mongolian Free Variation Selectors.
Part of fixing https://github.com/behdad/harfbuzz/issues/234
2016-04-26 16:15:22 -07:00
Behdad Esfahbod
29393884b9
Annotate blacklisted fonts with their sha1sum
2016-04-26 10:35:47 -07:00
Konstantin Ritt
5069062d0a
Unbreak build on Windows CE
...
0475ef2f97
broke the build by using
vsnprintf(), which is not defined on Windows CE
2016-04-26 12:02:26 +04:00
Behdad Esfahbod
1c625dff22
Minor
2016-04-09 12:53:23 -07:00
Behdad Esfahbod
851b0db36d
Minor. We should never get to this branch, but fix it anyway.
2016-04-08 23:46:55 -07:00
Behdad Esfahbod
4f3d59a187
Blacklist another set of timesi.ttf and timesbi.ttf
2016-04-08 13:41:20 -07:00
Behdad Esfahbod
ef476be80d
Merge pull request #239 from ebraminio/dwfix
...
Improve DirectWrite backend
2016-04-08 13:16:33 -07:00
Ebrahim Byagowi
d3134a66ad
Fix when no feature is given
2016-04-05 21:42:37 +00:00
Behdad Esfahbod
59089622db
[coretext] Clarify comment
2016-04-04 14:56:15 -07:00
Behdad Esfahbod
6dd80faf0d
Fix FixedVersion::to_int()
...
Ouch. Had broken it in 9a13ed453e
Fixes https://github.com/behdad/harfbuzz/issues/238
Will add test soon.
2016-04-04 14:34:25 -07:00
Ebrahim Byagowi
4a10402169
Hide justification behind HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION
2016-04-02 13:47:59 +00:00
Ebrahim Byagowi
63ee9ca5d8
Use standard types instead Windows favourites ones
2016-04-01 15:47:07 +00:00
Ebrahim Byagowi
adf20ba0d1
Limit GetJustifiedGlyphs only to scripts with custom justification character
2016-04-01 15:36:40 +00:00
Ebrahim Byagowi
32ae9d1b3f
Add justification support
2016-04-01 14:39:07 +00:00
Ebrahim Byagowi
10c3d9e415
Basic opentype features support
2016-04-01 01:39:15 +00:00
Ebrahim Byagowi
d129897120
Refactor and remove dupe getglyphs call
2016-03-31 13:47:32 +00:00
Ebrahim Byagowi
5f1a896100
Better glyph offset support
2016-03-31 12:43:37 +00:00
Ebrahim Byagowi
d691ba3f40
Don't fail when language is not set
2016-03-30 20:50:28 +00:00
Ebrahim Byagowi
1c00a46c7a
Make DirectWrite backend to work with different font sizes
...
Actually copyedited same logic from Uniscribe to make it just work
2016-03-30 20:15:09 +00:00
Behdad Esfahbod
69f9fbc420
Synthesize GDEF glyph class for any glyph that does not have one in GDEF
...
Previously we only synthesized GDEF glyph classes if the glyphClassDef
array in GDEF was null. This worked well enough, and is indeed what
OpenType requires: "If the font does not include a GlyphClassDef table,
the client must define and maintain this information when using the
GSUB and GPOS tables." That sentence does not quite make sense since
one needs Unicode properties as well, but is close enough.
However, looks like Arial Unicode as shipped on WinXP, does have GDEF
glyph class array, but defines no classes for Hebrew. This results
in Hebrew marks not getting their widths zeroed. So, with this change,
we synthesize glyph class for any glyph that is not specified in the
GDEF glyph class table. Since, from our point of view, a glyph not
being listed in that table is a font bug, any unwanted consequence of
this change is a font bug :).
Note that we still don't get the same rendering as Uniscribe, since
Uniscribe seems to do fallback positioning as well, even though the
font does have a GPOS table (which does NOT cover Hebrew!). We are
not going to try to match that though.
Test string for Arial Unicode:
U+05E9,U+05B8,U+05C1,U+05DC
Before: [gid1166=3+991|gid1142=0+737|gid5798=0+1434]
After: [gid1166=3+991|gid1142=0+0|gid5798=0+1434]
Uniscribe: [gid1166=3+991|gid1142=0@348,0+0|gid5798=0+1434]
Note that our new output matches what we were generating until July
2014, because the Hebrew shaper used to zero mark advances based on
Unicode, NOT GDEF. That's 9e834e29e0
.
Reported by Greg Douglas.
2016-03-17 11:59:43 -07:00
Behdad Esfahbod
fef5dd9a72
Merge pull request #232 from c0nk/wip-icu
...
Add --with-icu=builtin option; fix compile error
2016-03-12 19:15:15 -08:00
Behdad Esfahbod
3e10460a1d
Minor comment
2016-03-11 18:45:19 -08:00
Behdad Esfahbod
d14fea4bdc
Remove default clause in minor switch statements
...
Bending to clang warnings...
https://bugs.chromium.org/p/chromium/issues/detail?id=593057
2016-03-08 12:16:41 -08:00
Behdad Esfahbod
ce8ae99701
Merge pull request #231 from KonstantinRitt/post123buildfix
...
Fix build with HB_DISABLE_DEPRECATED
2016-03-04 17:20:35 -08:00
Behdad Esfahbod
731a430cd3
Fix requiredFeature stage handling logic
...
Originally the way Jonathan had written this was correct in
"continue"ing:
35e28c7a73 (diff-ead86a33a5cc9ad7f6e6381031a0baddR199)
When I rewrote his patch, I messed it up:
da13293798 (diff-ead86a33a5cc9ad7f6e6381031a0baddR209)
the intended behavior was NOT to set found=TRUE and NOT to continue.
This was resulting in feature_index[table_index] being left unset.
Oops!
2016-03-02 13:32:42 -08:00
Behdad Esfahbod
68b6296d33
Add F2DOT14 type
2016-03-01 16:41:53 +09:00
Behdad Esfahbod
082b79fe9f
Use FWORD and UFWORD when it makes sense
...
I had forgotten about those types.
2016-03-01 16:41:26 +09:00
Kal Conley
5f995db103
Fix missing ICU #include
...
Fix compile error in hb-icu.cc when ICU configured with
U_NO_DEFAULT_INCLUDE_UTF_HEADERS=1
2016-02-26 00:36:17 +01:00
Kal Conley
b424b6c372
Add --with-icu=builtin configure option
2016-02-26 00:35:15 +01:00
Konstantin Ritt
71248a843f
Fix build with HB_DISABLE_DEPRECATED
...
When HB_DISABLE_DEPRECATED is defined, no code from hb-deprecated.h
should be used, even from within HB itself.
2016-02-25 18:55:28 +04:00
Behdad Esfahbod
0c7fb7419c
Speed up buffer variable allocation sanity check
...
This makes defining HB_NDEBUG much less relevant, to the
point of irrelevance. Sorry about all the fuss in previous
release!
2016-02-25 14:40:09 +09:00
Behdad Esfahbod
91dd115652
Add HB_NDEBUG
...
API changes:
- If NDEBUG is defined, define HB_NDEBUG
- Disable costlier sanity checks if HB_NDEBUG is defined.
In 1.2.3 introduced some code to disable costly sanity checks if
NDEBUG is defined. NDEBUG, however, disables all assert()s as
well. With HB_NDEBUG, one can disable costlier checks but keep
assert()s.
I'll probably add a way to define HB_NDEBUG automatically in
release tarballs. But for now, production systems that do NOT
define NDEBUG, are encouraged to define HB_NDEBUG for our build.
2016-02-25 13:56:47 +09:00
Behdad Esfahbod
988165021f
Disable internal buffer variable bookkeeping in NDEBUG builds
...
Saves some sweet time and binary size!
2016-02-25 12:23:02 +09:00
Behdad Esfahbod
94dd0bb7e7
Add blacklist signature for Times New Roman (Bold) Italic on OS X
2016-02-25 11:31:03 +09:00
Behdad Esfahbod
e23cf902e9
Blacklist GDEF table of timesi.ttf and timesbi.ttf on Win 7
...
See discussion:
https://lists.freedesktop.org/archives/harfbuzz/2016-February/005489.html
2016-02-25 11:11:15 +09:00
Behdad Esfahbod
c335fd7986
In trampoline implementation of get_glyph(), don't destroy user data twice!
2016-02-25 09:16:05 +09:00
Behdad Esfahbod
23335deaad
[ot-font] Accelerate cmap format4 get_glyph
2016-02-24 20:27:13 +09:00
Behdad Esfahbod
e0f16a715b
[ot-font] Towards accelerating get_glyph()
2016-02-24 19:52:36 +09:00
Behdad Esfahbod
5473ebfb84
[ot-font] Remove level of indirection in get_glyph_variant
2016-02-24 19:32:43 +09: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
ebd7431f82
Partially revert 86c68c7a2c
...
That commit moved the advance adjustment for mark positioning to
be applied immediately, instead of doing late before. This breaks
if mark advances are zeroed late, like in Arabic. Also, easier to
hit it in RTL scripts since a single mark with non-zero advance is
enough to hit the bug, whereas in LTR, at least two marks are needed.
This reopens https://github.com/behdad/harfbuzz/issues/211
The cursive+mark interaction is broken again. To be fixed in a
different way.
2016-02-24 15:53:40 +09:00
Behdad Esfahbod
815bdd7700
In cluster-level=0, group ZWJ/ZWNJ with previous cluster
...
This better emulates Unicode grapheme clusters.
Note that Uniscribe does NOT do this, but should be harmless with most clients,
and improve fallback with clients that use HarfBuzz cluster as unit of fallback.
Fixes https://github.com/behdad/harfbuzz/issues/217
2016-02-22 18:22:44 +09:00
Behdad Esfahbod
89137e325a
Minor
2016-02-22 16:00:59 +09:00
Behdad Esfahbod
15063b12f7
[coretext] Move CTFont construction to face_data
2016-02-22 15:56:29 +09:00
Behdad Esfahbod
ba3d49d9a5
[coretext] Move code around
2016-02-22 15:50:12 +09:00
Behdad Esfahbod
90194efb84
[coretext] Move code around
2016-02-22 15:42:53 +09:00
Behdad Esfahbod
9a13ed453e
Make FixedVersion a template
2016-02-22 15:38:44 +09:00
Behdad Esfahbod
238b943e85
[coretext] Fix leak!
2016-02-22 15:31:22 +09:00
Behdad Esfahbod
e561122856
[coretext] Move code around
2016-02-22 15:28:37 +09:00
Behdad Esfahbod
04c6443153
[coretext] Ignore PPEM in font size selection
2016-02-22 15:12:27 +09:00
Behdad Esfahbod
62c2711121
[coretext] Limit grapheme-cluster forming to cluster-level=0
2016-02-22 15:07:20 +09:00
Behdad Esfahbod
061105ec44
[coretext] Fix shaping with varying font size
...
Fixes https://github.com/libass/libass/issues/212
2016-02-22 14:59:39 +09:00
Behdad Esfahbod
b87e36f6f1
Avoid buffer->move_to() in case of buffer error
...
Fixes https://github.com/behdad/harfbuzz/issues/223
Right now we cannot test this because it has to be tested using hb-fuzzer.
We should move all fuzzing tests from test/shaping/tests/fuzzed.tests to
test/fuzzing/ and have its own test runner. At that point, should add
test from this issue as well.
2016-02-19 14:52:31 +07:00
Behdad Esfahbod
568a0c60e8
Remove pointless overflow check in pointer math
...
Fixes https://github.com/behdad/harfbuzz/issues/227
2016-02-18 19:31:51 +07:00
Behdad Esfahbod
aae2847099
Emoji skin tone modifiers need to be treated as combining marks
...
Fixes https://github.com/behdad/harfbuzz/issues/169
2016-02-18 17:06:25 +07:00
Behdad Esfahbod
da41e48f0a
[USE] Zero mark advances by GDEF early
...
This is what Microsoft's implementation does. Marks that need advance
need to add it back using 'dist' or other feature in GPOS. Update tests to
match.
2016-02-16 17:16:33 +07:00
Behdad Esfahbod
86c68c7a2c
[GPOS] Fix interaction of mark attachments and cursive chaining
...
Fixes https://github.com/behdad/harfbuzz/issues/211
What happens in that bug is that a mark is attached to base first,
then a second mark is cursive-chained to the first mark. This only
"works" because it's in the Indic shaper where mark advances are
not zeroed.
Before, we didn't allow cursive to run on marks at all. Fix that.
We also where updating mark major offsets at the end of GPOS, such
that changes in advance of base will not change the mark attachment
position. That was superior to the alternative (which is what Uniscribe
does BTW), but made it hard to apply cursive to the mark after it
was positioned. We could track major-direction offset changes and
apply that to cursive in the post process, but that's a much trickier
thing to do than the fix here, which is to immediately apply the
major-direction advance-width offsets... Ie.:
https://github.com/behdad/harfbuzz/issues/211#issuecomment-183194739
If this breaks any fonts, the font should be fixed to do mark attachment
after all the advances are set up first (kerning, etc).
Finally, this, still doesn't make us match Uniscribe, for I explained
in that bug. Looks like Uniscribe applies minor-direction cursive
adjustment immediate as well. We don't, and we like it our way, at
least for now. Eg. the sequence in the test case does this:
- The first subscript attaches with mark-to-base, moving in x only,
- The second subscript attaches with cursive attachment to first subscript
moving in x only,
- A final context rule moves the first subscript up by 104 units.
The way we do, the final shift-up, also shifts up the second subscript
mark because it's cursively-attached. Uniscribe doesn't. We get:
[ttaorya=0+1307|casubscriptorya=0@-242,104+-231|casubscriptnarroworya=0@20,104+507]
while Uniscribe gets:
[ttaorya=0+1307|casubscriptorya=0@-242,104+-211|casubscriptnarroworya=0+487]
note the different y-offset of the last glyph. In our view, after cursive,
things move together, period.
2016-02-16 16:07:20 +07:00
Behdad Esfahbod
80c8855cfe
Minor
2016-02-12 12:50:17 +07:00
Behdad Esfahbod
6ab920224c
[GPOS] Minor
...
No effect.
2016-02-11 16:57:52 +07:00
Behdad Esfahbod
cbc3a76c5a
[GPOS] Merge fixing of offsets for cursive and mark attachments
...
Part of fixing https://github.com/behdad/harfbuzz/issues/211
2016-02-11 16:48:13 +07:00
Behdad Esfahbod
7d8d58ac81
[GPOS] Divide position_finish() into two phases, for advances and offsets
...
Right now the position_finish_advances() is empty. To be used for
spacing attachments proposal later.
2016-02-11 16:34:28 +07:00
Behdad Esfahbod
8474231567
[ot] Minor shuffling code around
2016-02-11 16:27:41 +07:00
Behdad Esfahbod
b0b11614e9
[GPOS] Add harmless recursion in fix_mark_attachment()
...
Will do nothing. Just useful for merging two functions.
2016-02-11 15:28:55 +07:00
Behdad Esfahbod
686567baab
[GPOS] Merge attach_chain() and cursive_chain()
...
Differentiate, using new attach_type().
2016-02-11 15:25:28 +07:00
Behdad Esfahbod
806ad8dc65
[GPOS] Minor shuffling
2016-02-11 14:53:11 +07:00
Behdad Esfahbod
0f6278d1fb
[GPOS] Negate sign of attach_lookback(), and rename it to attach_chain()
...
No behavior change. Preparing to unify how cursive and mark attachments
work.
2016-02-11 14:49:10 +07:00
Behdad Esfahbod
660c9d3fc2
Remove font-dependent ASCII-only perf hack
...
Is confusing. I already hit it myself. Remove. We can optimize
ASCII based on Unicode properties. But should not do based on
assumptions on the font.
2016-02-11 12:14:27 +07:00
Behdad Esfahbod
eaadcbbc53
Remove now-unused mark zeroing BY_UNICODE
2016-02-10 18:29:54 +07:00
Behdad Esfahbod
b3582a8ee8
Change default mark advance zeroing behavior from Unicode to GDEF
...
See thread at:
https://lists.freedesktop.org/archives/harfbuzz/2016-February/005462.html
2016-02-10 18:10:15 +07:00
Chun-wei Fan
c679285455
build: Build the DirectWrite sources if requested
...
This adds to the autotools build system so that the (experimental)
DirectWrite support for HarfBuzz is built (and dist'ed).
2016-02-03 20:14:42 +08:00
Chun-wei Fan
35ded3af74
build: Move source listings into separate Makefile snippets
...
This moves all the source listings in src/Makefile.am,
src/hb-ucdn/Makefile.am and util/Makefile.am into separate Makefile
snippets, so that they may be shared between different Makefile-based
build systems, such as NMake for Visual Studio.
2016-02-03 18:14:29 +08:00
Behdad Esfahbod
b894a85ad1
Fix more hangs in case of buffer allocation errors
...
Hopefully
fixes https://github.com/behdad/harfbuzz/issues/214
2016-02-02 16:39:19 +08:00
Behdad Esfahbod
9a6a33ccbe
Merge pull request #216 from mhosken/master
...
Refactor graphite2 to make ovleraps into negative width spaces
2016-01-18 12:47:18 +01:00
Martin Hosken
146fe252c3
Refactor graphite2 to make ovleraps into negative width spaces
2016-01-16 17:24:00 -06:00
Behdad Esfahbod
d05b783322
Fix compiler warning
...
Fixes https://github.com/behdad/harfbuzz/issues/212
2016-01-12 16:17:21 +00:00
Behdad Esfahbod
d163dc18e6
Minor
2016-01-12 13:05:01 +00:00
Behdad Esfahbod
3e704521f6
[OT] Get list of lookup subtables once and loop through them
...
This speeds up shaping the Amiri font by over 15%.
This was primarily needed for my work on OpenType GX, since
we will be collecting only sublookups that are "active" for
current font instance; but it's a nice boost in general as
well.
We might, in the future, collect subtables in the lookup_accel.
That would also allow us to do a per-subtbale set-digest, which
should speed things up some more, specially for ContextChainFormat3
lookups... Amiri, for example, contains one lookup with 53
subtables!
2016-01-11 17:38:41 +00:00
Behdad Esfahbod
97624d9244
[docs] Minor fixes.
2016-01-11 12:58:45 +00:00
Behdad Esfahbod
a39ff95fce
[coretext] Speed up CoreText font fallback
...
Fixes https://code.google.com/p/chromium/issues/detail?id=547912
2016-01-11 12:28:37 +00:00
Behdad Esfahbod
25671466d2
Add 9 reserved entries to hb_font_extents_t
...
Might add italic-angle, underline/strikethrough-position/thickness
in the future. Do this before new struct goes into a release.
2016-01-07 19:13:47 +00:00
Behdad Esfahbod
e6d5e4c310
[uniscribe] Fix negative advance
...
This happens with at least one test font I have.
2016-01-06 12:29:50 +00:00
Behdad Esfahbod
53c47c8582
Increase sanitize edit count from 8 to 32
...
See previous commit.
2016-01-05 13:26:20 +00:00
Behdad Esfahbod
da2fcfdc51
Don't count fixing-up FeatureParams offset as error
...
The font Garamond Premier Pro Caption (and possibly many other
Adobe fonts), have many FeatureParamsSize tables with the old
wrong offset. We handle fixing those up, but they were still
contributing to edit_count, and when I reduced HB_SANITIZE_MAX_EDIT
from 100 to 8 in 14c2de3218
, these
fonts were now getting GPOS dropped and hence kerning disabled.
Fix, by not counting edits made towareds offset fix-up. I'll
also increase edit count again, in the next commit.
2016-01-05 13:23:45 +00:00
Behdad Esfahbod
d0adc80965
Check magicNumber in head table during sanitize
2016-01-02 13:25:36 +00:00
Khaled Hosny
9ab9f974d4
[docs] More buffers documentation
2016-01-01 20:38:21 +04:00
Behdad Esfahbod
bfdf684f79
Merge pull request #205 from khaledhosny/more-docs
...
More docs
2015-12-30 22:20:14 +01:00