|
ab8d70ec
|
2017-10-04T14:47:10
|
|
[arabic] Implement Unicode Arabic Mark Ordering Algorithm UTR#53
Fixes https://github.com/behdad/harfbuzz/issues/509
|
|
57c55ef8
|
2017-10-02T18:21:27
|
|
[ot] Improve shaper selection heuristic
|
|
1535f8c6
|
2017-10-02T16:12:18
|
|
Add Unicode 10 scripts
|
|
e888f642
|
2017-01-26T14:50:14
|
|
Route Adlam through Arabic shaper
Fixes joined Adlam rendering.
Fixes https://github.com/googlei18n/noto-fonts/issues/828
|
|
e2b87805
|
2016-12-22T14:40:19
|
|
Disable OTL processing for Hebrew if GPOS doesn't have Hebrew subtable
New approach to fix this:
https://github.com/behdad/harfbuzz/commit/69f9fbc4200442a35484d3c790ae8f4979be5d60
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]
|
|
30e6e29f
|
2016-05-06T15:52:27
|
|
[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
|
|
691086f1
|
2016-05-06T12:08:18
|
|
Add Unicode 9 beta scripts
These are frozen, so good time to add.
|
|
eaadcbbc
|
2016-02-10T18:29:54
|
|
Remove now-unused mark zeroing BY_UNICODE
|
|
fc06cff4
|
2015-12-17T17:47:35
|
|
Remove HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT
The DEFAULT naming wasn't helpful, so just remove it.
|
|
13686337
|
2015-11-05T13:24:15
|
|
Add new shaper method postprocess_glyphs()
Unused currently. To be used for Syriac stretch implementation.
https://github.com/behdad/harfbuzz/issues/141
|
|
db1e9cdd
|
2015-07-21T17:46:06
|
|
Retire SEA shaper in favor of USE
|
|
87dde9c6
|
2015-07-21T17:31:43
|
|
[USE] Only use USE shaper if script system is not DFLT
Same logic as Indic and SEA.
|
|
29832d79
|
2015-07-21T17:24:18
|
|
Route misc untested scripts through USE shaper instead of Indic
These were never tested with Indic shaper, and indeed wouldn't work there
because they didn't have their viramas and other config defined. They are
all also supported by MS through USE, so route them there.
|
|
52a95779
|
2015-07-21T10:02:04
|
|
[USE] Hook up new scripts to USE shaper
Don't reroute scripts that we were routing to other shapers
before (just yet).
|
|
f724cc35
|
2015-04-23T12:45:02
|
|
Don't apply Arabic shaping to vertical text.
|
|
5eb939dd
|
2015-01-18T14:30:08
|
|
Change New Tai Lue shaping engine from SEA to default
This is to reflect the UTC decision to change the encoding model of
New Tai Lue from logical to visual to be similar to Thai, Lao, and
Tai Viet: http://www.unicode.org/L2/L2014/14250.htm#141-C26
The visual encoding is already the current practice of encoding New
Tai Lue on the web anyway:
http://www.unicode.org/L2/L2014/14195-newtailue.txt
Fixes behdad/harfbuzz#66.
|
|
6f2d9ba5
|
2014-07-26T19:17:44
|
|
Add old-Myanmar shaper
Looks like Unsicribe responds to the 'mymr' tag by zeroing marks
GDEF_LATE instead of generic-shaper UNICODE_LATE. Implement that.
Fixes
Bug 81775 - Incorrect Rendering with harfbuzz-ng myanmar unicode
https://bugs.freedesktop.org/show_bug.cgi?id=81775
Micro-test added based on Padauk.
|
|
7cfee382
|
2014-04-28T15:09:30
|
|
[unicode7] Route Manichaean and Psalter Pahlavi through Arabic shaper
Still needs update to joining table to fully work.
|
|
f14bb7de
|
2013-12-31T16:49:15
|
|
[ot] Separate out hebrew and tibetan shapers from default
Now default shaper is truly no-op.
|
|
6300cd72
|
2013-12-31T16:38:47
|
|
[ot] Define HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT
|
|
3d6ca0d3
|
2013-12-31T16:04:35
|
|
[ot] Simplify normalization_preference again
No shaper has more than one behavior re this, so no need for a callback.
|
|
c98b7183
|
2013-12-31T15:55:40
|
|
[ot] Add Hangul shaper
Not exhaustively tested, but I think I got the intended logic
right.
The logic can perhaps be simplified. Maybe we should disabled
normalization with this shaper. Then again, for now focusing on
correctness.
|
|
71b4c999
|
2013-10-28T00:20:59
|
|
Revert "Zero marks by GDEF for Tibetan"
This reverts commit d5bd0590ae2fbc7b0dee86385a565aef00ffb835.
The reasoning behind that logic was flawed and made under
a misunderstanding of the original problem, and caused
regressions as reported by Jonathan Kew in thread titled
"tibetan marks" in Oct 2013. Apparently I have had fixed
the original problem with this commit:
7e08f1258da229dfaf7e1c4b5c41e5bb83906cb0
So, revert the faulty commit and everything seems to be in good
shape.
|
|
d5bd0590
|
2013-10-18T16:44:54
|
|
Zero marks by GDEF for Tibetan
See:
http://lists.freedesktop.org/archives/harfbuzz/2013-April/003101.html
|
|
321df83f
|
2013-10-17T18:16:14
|
|
Route Buginese through the SEA shaper
Both Indic and SEA seem to do it just fine, but SEA is much
simpler.
|
|
54e6f6c5
|
2013-08-09T14:34:54
|
|
Clean up list of Unicode scripts
Rename HB_SCRIPT_CANADIAN_ABORIGINAL to HB_SCRIPT_CANADIAN_SYLLABICS
and a macro for the old name.
|
|
127daf15
|
2013-05-20T09:11:35
|
|
Arabic mark width-zeroing regression
Mozilla Bug 873902 - Display Arabic text with diacritics is bad
https://bugzilla.mozilla.org/show_bug.cgi?id=873902
|
|
587e5753
|
2013-04-05T12:38:58
|
|
Add note re Hangul shaping
|
|
3a83d33e
|
2013-02-12T12:14:10
|
|
Add South-East Asian shaper
Handles Tai Tham, Cham, and New Tai Lue for now.
|
|
5676d5d5
|
2013-02-12T10:31:14
|
|
[Indic] Make sure New Tai Lue works!
|
|
56800027
|
2013-02-12T09:44:57
|
|
Adjust mark advance-width zeroing logic for Myanmar
Before, we were zeroing advance width of attached marks for
non-Indic scripts, and not doing it for Indic.
We have now three different behaviors, which seem to better
reflect what Uniscribe is doing:
- For Indic, no explicit zeroing happens whatsoever, which
is the same as before,
- For Myanmar, zero advance width of glyphs marked as marks
*in GDEF*, and do that *before* applying GPOS. This seems
to be what the new Win8 Myanmar shaper does,
- For everything else, zero advance width of glyphs that are
from General_Category=Mn Unicode characters, and do so
before applying GPOS. This seems to be what Uniscribe does
for Latin at least.
With these changes, positioning of all tests matches for Myanmar,
except for the glitch in Uniscribe not applying 'mark'. See preivous
commit.
|
|
98628cac
|
2013-02-11T13:36:23
|
|
Add Win8-style Myanmar shaper
Myanmar failures down from 51% to 0.00204648%!
MYANMAR: 1123860 out of 1123883 tests passed. 23 failed (0.00204648%)
|
|
16c914c2
|
2012-11-21T01:04:15
|
|
[Indic] One more try at unbreaking Khmer fonts
See comments and discussion on the list.
|
|
eba312c8
|
2012-11-16T12:39:23
|
|
Plumbing to get shape plan and font into complex decompose function
So we can handle Sinhala split matras smartly... Coming soon.
|
|
851784f8
|
2012-11-14T16:24:05
|
|
Improve shaper selection
|
|
0f80a89d
|
2012-11-14T15:05:19
|
|
Don't route Kharoshthi through the Indic shaper
It's a simple, right-to-left, script.
|
|
865745b5
|
2012-11-14T13:48:26
|
|
Don't do fallback positioning for Indic and Thai shapers
|
|
981748cb
|
2012-11-14T13:38:16
|
|
[Indic] If Khmer fonts have a 'liga' feature, use generic shaper
Seems to produce more coherent results than trying the Indic shaper on
them. I'm looking at you, Kh-* fonts...
|
|
0736915b
|
2012-11-13T12:35:35
|
|
[Indic] Decompose Sinhala split matras the way old HarfBuzz / Pango did
Had to do some refactoring to make this happen...
Under uniscribe bug compatibility mode, we still plit them
Uniscrie-style, but Jonathan and I convinced ourselves that there is no
harm doing this the Unicode way. This change makes that happen, and
unbreaks free Sinhala fonts.
|
|
9e92978c
|
2012-11-12T18:36:10
|
|
[Indic] Route "new" Myanmar tag through the Indic shaper
Windows 8 adds a Myanmar shaper using the 'mym2' tag. Route that
through the Indic shaper. It's still very broken, but at least this
does NOT break old-style Myanmar shaping using the generic shaper.
|
|
5ab3855f
|
2012-11-12T18:27:42
|
|
Choose shaper based on chosen OT script tag
For Arabic and Indic shapers, if the font doesn't have a script system
for the script, use default shaper.
Make an exception for Arabic script since we have fallback logic for
that one.
|
|
9b37b4c5
|
2012-11-12T18:23:38
|
|
Make planner available to complex shaper choosing logic
|
|
43149afb
|
2012-11-12T13:34:17
|
|
Route MEETEI_MAYEK through the Indic shaper
Since it has a couple of left-"matras".
|
|
3ba7bc14
|
2012-11-01T20:05:04
|
|
Implement 'Phags-pa shaping
Through the Arabic shaper. It's similar to Mongolian.
|
|
9f9f04c2
|
2012-08-11T18:34:13
|
|
[OT] Unbreak Thai shaping and fallback Arabic shaping
The merger of normalizer and glyph-mapping broke shapers that
modified text stream. Unbreak them by adding a new preprocess_text
shaping stage that happens before normalizing/cmap and disallow
setup_mask modification of actual text.
|
|
cd0c6e14
|
2012-08-09T21:48:55
|
|
Shuffle buffer variable allocations around
To room for more allocations, coming.
|
|
a8c6da90
|
2012-08-02T10:46:34
|
|
[OT] Add per-complex-shaper shape_plan data
Hookup some Indic data to it. More to come.
|
|
16c6a27b
|
2012-08-02T09:38:28
|
|
[OT] Port complex_shaper to planner/plan
|
|
1e7d8606
|
2012-07-31T23:41:06
|
|
[GPOS] Adjust mark advance-width zeroing logic
If there is no GPOS, zero mark advances.
If there *is* GPOS and the shaper requests so, zero mark advances for
attached marks.
Fixes regression with Tibetan, where the font has GPOS, and marks a
glyph as mark where it shouldn't get zero advance.
|
|
2bc3b9a6
|
2012-07-31T23:08:25
|
|
[OT] Zero mark advances if the shaper desires so
Enabled for all shapers except for Indic.
|
|
693918ef
|
2012-07-30T21:08:51
|
|
[OT] Streamline complex shaper enumeration
Add a shaper class struct.
|
|
7e34601d
|
2012-07-30T14:53:41
|
|
Unbreak Hangul jamo composition
When we removed the separate Hangul shaper, the specific normalization
preference of Hangul was lost. Fix that. Also, the Thai shaper was
copied from Hangul, so had the fully-composed normalization behavior,
which was unnecessary. So, fix that too.
|
|
f8603664
|
2012-07-30T02:38:39
|
|
[OT] Gain back some lost speed
|
|
d8942dcb
|
2012-07-18T16:34:10
|
|
Apply Tibetan (global) features.
Fixes all Tibetan failures. All 180k of them!
Merges back Hangul into the default shaper.
|
|
d96838ef
|
2012-07-16T20:26:57
|
|
Allow complex shapers overriding common features
In a new callback... Currently unused by all complex shapers.
|
|
0594a244
|
2012-06-05T20:35:40
|
|
Cleanup TRUE/FALSE vs true/false
|
|
7f852b64
|
2012-05-11T23:10:31
|
|
Fix compiler warnings
|
|
cee71874
|
2012-05-11T11:41:39
|
|
[Indic] Move syllable tracking from Indic to generic layer
This is to incorporate it into GSUB/GPOS processing.
|
|
ef24cc8c
|
2012-05-09T17:56:03
|
|
[Indic] Towards multi-cluster syllables and final reordering
|
|
d1deaa2f
|
2012-05-09T15:04:13
|
|
Replace zerowidth invisible chars with a zero-advance space glyph
Like Uniscribe does.
|
|
5b126090
|
2012-05-09T12:37:27
|
|
Minor
|
|
acd88e65
|
2012-04-10T18:02:20
|
|
In Arabic fallback shaping, check that the font has glyph for new char
|
|
3b26f96e
|
2012-04-10T10:52:07
|
|
Add Thai shaper that does SARA AM decomposition / reordering
That's not in the OpenType spec, but it's what MS and Adobe do.
|
|
c9a841f4
|
2012-04-07T15:06:55
|
|
Add simple Hangul shaper that recomposes Jamo when feasible
Previously, we were NOT actually recomposing Hangul Jamo. We do now.
The two lines in:
test/shaping/texts/in-tree/shaper-default/script-hangul/misc/misc.txt
Now render the same with the UnDotum.ttf font. Previously the second
linle was rendering boxes.
We can also start applying OpenType Jamo features later. At this time,
I have no idea how the 'ljmo', 'vjmo', 'tjmo' features are supposed to
work. Maybe someone can explain them to me?
|
|
11138ccf
|
2012-04-05T17:25:19
|
|
Add normalize mode
In preparation for Hangul shaper.
|
|
cad3821f
|
2012-03-07T17:13:25
|
|
More sorting by Unicode version
This is the most convenient way to browse scripts.
|
|
317b9504
|
2012-03-07T16:51:29
|
|
Minor
|
|
f91136cb
|
2012-03-07T12:56:22
|
|
Route three Unicode 6.1 scripts through Indic shaper
|
|
18322468
|
2012-03-07T12:21:28
|
|
Use generic shaper for Buhid
As requested by Jonathan Kew.
We need to devise a better mechanism to choose which scripts to
pass through the Indic shaper. Moreover, currently we are storing
data for some scripts in the Indic shaper that are not even going
through that shaper. Need to find a better way...
|
|
7a4a848d
|
2012-01-19T15:15:21
|
|
Minor
|
|
e8eedf26
|
2012-01-16T16:39:40
|
|
Avoid enum trailing commas
Based on patch from Jonathan Kew.
|
|
bc187e5a
|
2011-09-08T13:35:17
|
|
Refine Indic scripts, following Martin Hosken's recommendation
|
|
c605bbbb
|
2011-08-04T20:00:53
|
|
Remove C++ guards from source files
Where causing issues for people with MSVC.
|
|
b65c0602
|
2011-07-28T16:48:43
|
|
Formalize buffer var allocations
|
|
02cdf743
|
2011-07-21T12:23:12
|
|
Add prefer_decomposed() complex-shaper callback
This allows the Indic shaper to request decomposed characters. This will
handle split matra for free. Other shapers prefer precomposed
characters.
|
|
d05dded1
|
2011-07-07T23:42:40
|
|
More code generation through preprocessor
|
|
3361c9a3
|
2011-07-07T22:35:17
|
|
Minor
|
|
76f76812
|
2011-07-07T22:25:25
|
|
Shuffle code around, remove shape_plan from complex shapers
|
|
e88bff9b
|
2011-07-07T22:03:02
|
|
Minor, use function typedefs
|
|
359dcaa0
|
2011-07-07T21:55:05
|
|
Update copyright headers
|
|
b9ddbd55
|
2011-06-02T17:43:12
|
|
[Indic] Start an Indic shaper
Nothing functional in there yet.
So far, we're parsing IndicSyllabicCategory.txt and IndicMatraCategory.txt
fils from Unicode Character Database and store them in an array to be used
by the shaper. Also hooked up the shaper, but it does not do anything
right now.
|
|
90645fb2
|
2011-05-27T18:13:31
|
|
[OT] Separate map_builder from the actual map
Respectively, separate planner from the actual plan.
|
|
2409d5f8
|
2011-04-21T17:14:28
|
|
Update Copyright headers
|
|
c57d454a
|
2011-04-20T18:50:27
|
|
Rename all private sources and headers to C++ files
So we can liberally use the simple features of C++ that parts of the
codebase is already using.
|
|
62879eeb
|
2011-04-18T23:40:21
|
|
[API] Use ISO 15924 tags for hb_script_t
This simplifies the code, reduces static data, and makes the design
more extensible to future additions of new scripts.
|
|
d86a5b3c
|
2010-12-21T18:36:25
|
|
Bug 32274 - classic mongolian shaper
Add support for classic Mongolian script to the Arabic shaper.
Still work to be done around U+180E MONGOLIAN VOWEL SEPARATOR as it
should not be included in the final glyph stream the same way that
ZWNJ, etc should not appear in the final glyph stream.
But the joining part should be done.
There remains the question of how should the U+18A9 MONGOLIAN LETTER ALI
GALI DAGALGA be handled as it has General Category NSM but a letter
nonetheless. For now, our generic logic makes this a joining T instead
of joining D as other Mongolian letters are.
|
|
b0e7378f
|
2010-12-21T14:19:32
|
|
Reroute Mandaic shaping through the Arabic shaper
We added Mandaic joining data to the Arabic shaper a while ago, but
were not actually using the Arabic shaper for Mandaic. Fixed.
|
|
13403bc6
|
2010-10-12T17:23:54
|
|
Hookup Arabic shaper!
Not tested yet.
|
|
49baa1f6
|
2010-10-12T16:50:36
|
|
Add hb_ot_complex_shaper_t stuff and start hooking Arabic shaper up
|