Behdad Esfahbod
45412523dc
More normalization kick
14 years ago
Behdad Esfahbod
63c0ef4a07
Fix decompose() implementations to work with non-starter non-composables
...
Add tests.
14 years ago
Behdad Esfahbod
5d90a342e3
Document normalization design
14 years ago
Behdad Esfahbod
02cdf743c2
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.
14 years ago
Behdad Esfahbod
d6b9c6d200
More kicking
14 years ago
Behdad Esfahbod
192445aef2
Remove intermittent_glyph()
...
Lets not worry about performance for now...
14 years ago
Behdad Esfahbod
d63adfc7d0
No need to handle variation-selectors seperately, they are GC=Mn
14 years ago
Behdad Esfahbod
aa7264123a
Only form clusters if we are reversing
...
This produces more accurate cluster mappings. Cluster mappings are
minimal now. Combining marks get their own cluster value most of
the time.
14 years ago
Behdad Esfahbod
5c6f5982d7
Towards normalization
14 years ago
Behdad Esfahbod
ad903e66b1
s/COMBINING_MARK/SPACING_MARK/ here too. Oops!
14 years ago
Behdad Esfahbod
cf7f43ec33
Remove stale comment
14 years ago
Behdad Esfahbod
54d1a0d2b2
Form clusters before ensuring native direciton
...
This is essential as ensure_native_direction uses cluster info that
is set by form_clusters().
14 years ago
Behdad Esfahbod
9111b21ef9
Add _hb_buffer_output_glyph() and _hb_buffer_skip_glyph()
14 years ago
Behdad Esfahbod
655586fe5e
Towards normalization
14 years ago
Behdad Esfahbod
49741c8633
Include variation-selectors in cluster calculation
14 years ago
Behdad Esfahbod
dd89d958c1
Fix cluster calculation for non-LTR text
14 years ago
Behdad Esfahbod
4a68684654
When forming clusters, participate all mark types
14 years ago
Behdad Esfahbod
5157e12a55
Rename HB_UNICODE_GENERAL_CATEGORY_COMBINING_MARK to HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK
...
Spacing_Mark is the current Unicode long-name for this property value.
The previous name was wrongly carried from glib.
14 years ago
Behdad Esfahbod
7b08b0a7f2
Minor
14 years ago
Behdad Esfahbod
498e1a9be6
[icu] Implement compose()/decompose()
14 years ago
Behdad Esfahbod
ffd4a436f7
Add tests for compose()/decompose()
...
Adjust glib fallback implementation.
The tests are not hooked up for ICU yet.
14 years ago
Behdad Esfahbod
fca0923b04
Minor
14 years ago
Behdad Esfahbod
26b6024962
[glib] Use g_unicode_script_to/from_iso15924() if available
14 years ago
Behdad Esfahbod
22fdc66712
[glib] Add compose() and decompose() implementations with fallback
14 years ago
Behdad Esfahbod
a54a5505a3
Minor
14 years ago
Behdad Esfahbod
23db8d5c92
[test] Work around glib <= 2.30 API
14 years ago
Behdad Esfahbod
22989c5ffc
Distribute hb-ot-shape-complex-indic-machine.rl
14 years ago
Behdad Esfahbod
f6fd3780e1
Let shapers decide when to apply ccmp and locl
...
Instead of always applying those two features before the complex shaper,
let the complex shaper decide whether they should be applied first.
Also add stub for Indic's final_reordering().
14 years ago
Behdad Esfahbod
c4641723fb
[API] Add compose() and decompose() unicode funcs, rename other ones
...
Add compose() and decompose() unicode funcs. These implement
pair-wise canonical composition/decomposition.
The glib/icu implementations are lacking for now. We are adding
API for this to glib, but I cannot find any useful API in ICU.
May end of implementing these in-house.
Changed all unicode_funcs callback names to remove the "_get" part.
Eg, hb_unicode_get_script_func_t is now hb_unicode_script_func_t,
and hb_unicode_get_script() is hb_unicode_script() now.
14 years ago
Behdad Esfahbod
d05dded167
More code generation through preprocessor
14 years ago
Behdad Esfahbod
891c4755ba
Humm, undo some shuffling
...
In preparation for adding more advanced unicode funcs.
14 years ago
Behdad Esfahbod
4b6317c4f4
More code shuffling
14 years ago
Behdad Esfahbod
3361c9a323
Minor
14 years ago
Behdad Esfahbod
76f76812ac
Shuffle code around, remove shape_plan from complex shapers
14 years ago
Behdad Esfahbod
e88bff9b4d
Minor, use function typedefs
14 years ago
Behdad Esfahbod
359dcaa0d3
Update copyright headers
14 years ago
Behdad Esfahbod
d8d0c480c8
Refactor some code common to GSUB and GPOS
14 years ago
Behdad Esfahbod
b70c96dbe4
Enable applying GSUB/GPOS features in multiple segments
...
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=644184
among others.
Shapers now can request segmented feature application by calling
add_gsub_pause() or add_gpos_pause(). They can also provide a
callback to be called at the pause. Currently the Arabic shaper
uses pauses to enforce certain feature application. The Indic
shaper can use the same facility to pause and do reordering in the
callback.
14 years ago
Behdad Esfahbod
f6d7a9bb4c
Shuffle code around
14 years ago
Behdad Esfahbod
fc551edbf2
Add todo
...
I'm too lazy to fix the tests now.
14 years ago
Behdad Esfahbod
2e18c6dbdf
Fix reverse_range() position loop
...
Mozilla Bug 669175 - Slow rendering of text sometimes in this case,
using direction: rtl
14 years ago
Behdad Esfahbod
fa2befa46f
Minor
14 years ago
Behdad Esfahbod
d69d5ceaa0
[Indic] Well, at least finding syllables works now :)
...
Still not much there.
14 years ago
Behdad Esfahbod
253a57fb5a
[test-shape-complex] Remove the greek tests
...
They are outdated with respect to the DejaVu Sans I'm using.
We need to add font version checking to the tests.
14 years ago
Behdad Esfahbod
afa74bf904
[test-shape-complex] Print out expected and actual glyphstrings upon failure
...
One has to run the test with --verbose to see that right now.
14 years ago
Behdad Esfahbod
42d453b023
[test] Name tests after their input string
14 years ago
Behdad Esfahbod
2741316978
Minor
...
Towards a better test runner.
14 years ago
Behdad Esfahbod
cc674cbf7f
Minor
14 years ago
Behdad Esfahbod
20d8a3982a
[test] Remove disabled code
...
We'd add normalization and decomposition tests later.
14 years ago
Behdad Esfahbod
9704f0ca6c
[test] Restructure shape test data a bit
14 years ago