Behdad Esfahbod
eba312c8d1
Plumbing to get shape plan and font into complex decompose function
...
So we can handle Sinhala split matras smartly... Coming soon.
2012-11-16 12:58:38 -08:00
Behdad Esfahbod
0736915b8e
[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.
2012-11-13 12:35:35 -08:00
Behdad Esfahbod
028a1706f8
Refactor common macro
2012-09-06 14:25:48 -04:00
Behdad Esfahbod
b85800f9de
[Indic] Implement dotted-circle insertion for broken clusters
...
No panic, we reeally insert dotted circle when it's absolutely broken.
Fixes most of the dotted-circle cases against Uniscribe. (for Devanagari
fixes 80% of them, for Khmer 70%; the rest look like Uniscribe being
really bogus...)
I had to make a decision. Apparently Uniscribe adds one dotted circle
to each broken character. I tried that, but that goes wrong easily with
split matras. So I made it add only one dotted circle to an entire
broken syllable tail. As in: "if there was a dotted circle here, this
would have formed a correct cluster." That works better for split
stuff, and I like it more.
2012-08-31 19:18:20 -04:00
Behdad Esfahbod
f4cb476298
[OT] Slightly adjust normalizer
...
The change is very subtle. If we have a single-char cluster that
decomposes to three or more characters, then try recomposition, in
case the farther mark may compose with the base.
2012-08-10 03:51:44 -04:00
Behdad Esfahbod
07d6828063
Minor
2012-08-10 03:28:50 -04:00
Behdad Esfahbod
b00321ea78
[OT] Avoid calling get_glyph() twice
...
Essentially move the glyph mapping to normalization process.
The effect on Devanagari is small (but observable). Should be more
observable in simple text, like ASCII.
2012-08-09 22:33:32 -04:00
Behdad Esfahbod
8d1eef3f32
Minor
2012-08-09 21:35:47 -04:00
Behdad Esfahbod
0f8881d6bb
More refactoring
2012-08-07 16:57:02 -04:00
Behdad Esfahbod
428dfcab66
Minor refactoring
2012-08-07 16:51:48 -04:00
Behdad Esfahbod
8fbfda920e
Inline font getters
2012-08-01 19:03:46 -04:00
Behdad Esfahbod
208f70f055
Inline Unicode callbacks internally
2012-08-01 17:13:10 -04:00
Behdad Esfahbod
84186a6400
Add commentary on the compatibility decomposition in the normalizer
2012-08-01 13:32:39 -04:00
Behdad Esfahbod
378d279bbf
Implement Unicode compatibility decompositions
...
Based on patch from Philip Withnall.
https://bugs.freedesktop.org/show_bug.cgi?id=41095
2012-07-31 21:36:16 -04:00
Behdad Esfahbod
bc8357ea7b
Merge clusters during normalization
2012-06-08 21:01:20 -04:00
Behdad Esfahbod
0594a24484
Cleanup TRUE/FALSE vs true/false
2012-06-05 20:35:40 -04:00
Behdad Esfahbod
9f377ed321
Fix more unused-var warnings
2012-05-13 16:13:44 +02:00
Behdad Esfahbod
99c2695759
Add accessort to buffer for current info, current pos, and prev info
2012-05-13 15:45:18 +02:00
Behdad Esfahbod
d1deaa2f5b
Replace zerowidth invisible chars with a zero-advance space glyph
...
Like Uniscribe does.
2012-05-09 15:04:13 +02:00
Behdad Esfahbod
29a7e306e3
Minor
2012-04-24 16:01:30 -04:00
Behdad Esfahbod
683b503f30
Minor
2012-04-14 20:47:14 -04:00
Behdad Esfahbod
9683184553
Implement normalization mode HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_FULL
...
In this mode we try composing CCC=0 with CCC=0 characters. Useful for
Hangul.
2012-04-07 15:06:47 -04:00
Behdad Esfahbod
bec2ac4fde
Bring normalization algorithm closer to the spec
...
No logical difference so far.
2012-04-07 14:51:17 -04:00
Behdad Esfahbod
e02d925786
Flip logic around
2012-04-07 14:49:13 -04:00
Behdad Esfahbod
11138ccff7
Add normalize mode
...
In preparation for Hangul shaper.
2012-04-05 17:25:19 -04:00
Behdad Esfahbod
6769f21d57
More moving code around
2012-04-05 16:46:46 -04:00
Behdad Esfahbod
e3b2e077f5
Typo
2012-03-07 10:21:24 -05:00
Behdad Esfahbod
c346671b6b
Minor doc fixes
2012-03-06 20:47:50 -05:00
Behdad Esfahbod
af913c5788
Fix infinite loop in normalization code with variation selectors
...
Reported by Jonathan Kew.
2011-10-17 11:39:28 -07:00
Behdad Esfahbod
55deff7595
Add comments
2011-09-28 16:20:09 -04:00
Behdad Esfahbod
947c9a778c
Minor
2011-09-16 16:33:18 -04:00
Behdad Esfahbod
36b10f58cc
Minor
2011-09-15 16:29:51 -04:00
Behdad Esfahbod
c605bbbb6d
Remove C++ guards from source files
...
Where causing issues for people with MSVC.
2011-08-04 20:00:53 -04:00
Behdad Esfahbod
45d6f29f15
[Indic] Reorder matras
...
Number of failing shape-complex tests goes from 125 down to 94.
Next: Add Ra handling and it's fair to say we kinda support Indic :).
2011-07-30 14:44:30 -04:00
Behdad Esfahbod
c311d85208
Keep Unicode props updated as we go so we avoid a scan later
2011-07-23 23:43:54 -04:00
Behdad Esfahbod
5389ff4dbc
Implement the Unicode Canonical Composition algorithm
...
Fallback normalization is complete and working now!
2011-07-22 20:22:49 -04:00
Behdad Esfahbod
dcdc51cdc0
Handle singleton decompositions
2011-07-22 17:14:46 -04:00
Behdad Esfahbod
34c22f8168
Implement Unicode Canonical Reordering Algorithm
2011-07-22 17:04:20 -04:00
Behdad Esfahbod
4ff0d2d9df
Decomposition works now!
2011-07-22 16:15:32 -04:00
Behdad Esfahbod
468e9cb25c
Move buffer methods into the object
2011-07-22 14:49:14 -04:00
Behdad Esfahbod
45412523dc
More normalization kick
2011-07-22 11:07:05 -04:00
Behdad Esfahbod
5d90a342e3
Document normalization design
2011-07-21 15:25:01 -04:00
Behdad Esfahbod
d6b9c6d200
More kicking
2011-07-21 12:16:45 -04:00
Behdad Esfahbod
192445aef2
Remove intermittent_glyph()
...
Lets not worry about performance for now...
2011-07-21 12:13:04 -04:00
Behdad Esfahbod
5c6f5982d7
Towards normalization
2011-07-21 11:31:08 -04:00
Behdad Esfahbod
655586fe5e
Towards normalization
2011-07-21 00:52:42 -04:00