Behdad Esfahbod
826e22732d
[uniscribe] Fix blob lifecycles
2011-08-07 03:53:42 -04:00
Behdad Esfahbod
ff199ba356
Fix shaper_list manipulation, aaaaaaaaaaaaargh
2011-08-07 03:43:46 -04:00
Behdad Esfahbod
577326b86a
[uniscribe] Fix cluster calculation
2011-08-07 01:04:40 -04:00
Behdad Esfahbod
f6d83b2dcf
Minor
2011-08-07 00:59:58 -04:00
Behdad Esfahbod
2eb474afb4
[uniscribe] Fix shaper
...
It's kinda working finally!
2011-08-07 00:59:38 -04:00
Behdad Esfahbod
f22e661147
[glib] Protect against invalid characters
2011-08-07 00:59:12 -04:00
Behdad Esfahbod
144cd49a0e
[buffer] Accept -1 for text_length and item_length
...
A -1 text_length means: zero-terminated string.
A -1 item_length means: to the end of string.
2011-08-07 00:51:50 -04:00
Behdad Esfahbod
e9c71fab30
Fix name-table lookup
...
Oops!
2011-08-07 00:01:04 -04:00
Behdad Esfahbod
3fd2b5bece
[uniscribe] Use font size directly
2011-08-06 22:59:54 -04:00
Behdad Esfahbod
892eb2e462
[uniscribe] Make font selection work
...
Not tested yet.
2011-08-06 22:32:07 -04:00
Behdad Esfahbod
b492299eb3
Start implementing the 'name' table
2011-08-05 20:34:50 -04:00
Behdad Esfahbod
4538efacca
Skip tests by returning 77
...
automake test runner understands this.
2011-08-05 20:11:06 -04:00
Behdad Esfahbod
54eb65538d
Fix check on OS X sh
2011-08-05 20:09:25 -04:00
Behdad Esfahbod
9da554504e
Add hb_shape_list_shapers()
2011-08-05 19:59:02 -04:00
Behdad Esfahbod
d7bf473ef2
Minor
2011-08-05 19:59:02 -04:00
Behdad Esfahbod
c62a8f10f3
Free all static memory upon exit
2011-08-05 19:59:02 -04:00
Behdad Esfahbod
c4d63ef744
Fix env parsing code
...
Also changed the separator to comma instead of colon.
2011-08-05 19:59:02 -04:00
Behdad Esfahbod
3931837beb
Change hb_shape() API back to what it was, add hb_shape_full()
...
I disliked changing hb_shape() API, and disliked the fact that it was
returning a bool now. So, reverted. Added new API for the extra
functionality.
2011-08-05 19:59:02 -04:00
Behdad Esfahbod
3ca6c4ecc2
Change hb_shape() API back to what it was, add hb_shape_full()
...
I disliked changing hb_shape() API, and disliked the fact that it was
returning a bool now. So, reverted. Added new API for the extra
functionality.
2011-08-05 17:22:19 -04:00
Behdad Esfahbod
02aeca985b
[API] Changes to main shape API
...
hb_shape() now accepts a shaper_options and a shaper_list argument.
Both can be set to NULL to emulate previous API. And in most situations
they are expected to be set to NULL.
hb_shape() also returns a boolean for now. If shaper_list is NULL, the
return value can be ignored.
shaper_options is ignored for now, but otherwise it should be a
NULL-terminated list of strings.
shaper_list is a NULL-terminated list of strings. Currently recognized
strings are "ot" for native OpenType Layout implementation, "uniscribe"
for the Uniscribe backend, and "fallback" for the non-complex backend
(that will be implemented shortly). The fallback backend never fails.
The env var HB_SHAPER_LIST is also parsed and honored. It's a
colon-separated list of shaper names. The fallback shaper is invoked if
none of the env-listed shapers succeed.
New API hb_buffer_guess_properties() added.
2011-08-04 22:38:09 -04:00
Behdad Esfahbod
57692adf12
Make test.cc do something more useful
...
Hardcoded to the uniscribe backend for now. Will fix soon.
2011-08-04 20:49:16 -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
8336186a52
Zero map objects
2011-08-04 19:49:05 -04:00
Behdad Esfahbod
c747f509bc
More out-of-tree build fixes
2011-08-04 01:51:30 -04:00
Behdad Esfahbod
20dde61016
Minor
2011-08-04 01:07:33 -04:00
Behdad Esfahbod
44b4f50d05
Fix typo
2011-08-04 00:52:20 -04:00
Behdad Esfahbod
0fbb2dc831
Add draft experimental Uniscribe backend
...
Not complete yet, font selection doesn't work. But hey it shapes!
This is not supposed to be a production backend, more like a testing
backend.
2011-08-03 19:55:04 -04:00
Behdad Esfahbod
e62df43649
Add internal hb_buffer_t::get_scratch_buffer()
2011-08-03 17:38:54 -04:00
Behdad Esfahbod
bf8c57ba74
[API] Add hb_face_get_blob()
...
Need to think more about it.
2011-08-03 17:38:04 -04:00
Behdad Esfahbod
2118fdb9f5
Fix fallback shaping
...
Broke it a few commits ago.
2011-08-02 14:06:51 -04:00
Behdad Esfahbod
f60271c0c2
Add mingw32 support
...
With these changes, on Ubuntu I can do:
./configure --host=i586-mingw32msvc && make
2011-08-02 10:00:55 -04:00
Behdad Esfahbod
f5414cf0a2
Use missing script for calling ragel
2011-08-01 16:34:16 -04:00
Behdad Esfahbod
a91c58bf98
[Indic] Disable CJCT-disabling logic
...
Read comment.
2011-08-01 16:30:11 -04:00
Behdad Esfahbod
5e72071062
[Indic] Stop looking for base upon seeing joiners
...
Not sure where this is documented, but I remember this being the desired
behavior.
test-shape-complex failures are down from 48 to 46. Meh.
2011-07-31 17:52:44 -04:00
Behdad Esfahbod
281683995a
Cosmetic
2011-07-31 16:00:35 -04:00
Behdad Esfahbod
6b37bc8084
[Indic] Fix ZWJ/ZWNJ application
...
Not quite working just yet. False alarm re 10 failures. It was
crashing. Ouch! Back to 48 failures.
2011-07-31 15:57:00 -04:00
Behdad Esfahbod
e7be057024
[Indic] Add Final Reordering rules into comments
...
Not applied yet.
2011-07-31 15:22:46 -04:00
Behdad Esfahbod
cfd4382ec1
[Indic] Handle Reph when determining base consonant
2011-07-31 15:08:40 -04:00
Behdad Esfahbod
97158392a5
[Indic] Ra is a consonant too
2011-07-31 15:01:28 -04:00
Behdad Esfahbod
0d8f8a177c
[Indic] Fix reph inhibition logic
2011-07-31 14:57:59 -04:00
Behdad Esfahbod
9da0487cd4
[Indic] Support ZWJ/ZWNJ
...
Brings test-shape-complex failures down from 52 to 10!
I hereby declare harfbuzz-ng supporting Indic!
2011-07-31 13:46:44 -04:00
Behdad Esfahbod
9ee27a928a
[Indic] Suppress reph formation upon joiners
2011-07-31 11:10:14 -04:00
Behdad Esfahbod
8354e004e5
Un-Ra U+09F1. According to the test suite this is correct.
...
But I'm not sure... Down from 54 failures to 52.
2011-07-31 02:24:51 -04:00
Behdad Esfahbod
ba7e85c104
Cosmetic
2011-07-30 21:11:53 -04:00
Behdad Esfahbod
f5bc2725cb
[Indic] For old-style Indic tables, move Halant around
...
In old-style Indic OT standards, the post-base Halants are moved after
their base. Emulate that by moving first post-base Halant to
post-last-consonant.
Brings test-shape-complex failures down from 88 to 54. Getting there!
2011-07-30 21:08:10 -04:00
Behdad Esfahbod
c47a31fb47
[OT] Save chosen script tag
2011-07-30 20:57:01 -04:00
Behdad Esfahbod
fd06bf5611
[Indic] Handle initial Ra+Halant in scripts that support Reph
...
Brings test-shape-complex failures down from 104 to 92. Way to go!
2011-07-30 20:14:44 -04:00
Behdad Esfahbod
ee58f3bc75
Minor
2011-07-30 19:15:53 -04:00
Behdad Esfahbod
352372ae5e
[Indic] Categorize Ra in scripts that have Reph
...
Is the categorization correct? I don't know.
2011-07-30 19:04:02 -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
911bf32aca
Bug 39686 - Add '-no-undefined' to libharfbuzz LDFLAGS
2011-07-30 11:16:00 -04:00
Behdad Esfahbod
8f0b64fb69
Minor
2011-07-29 17:02:48 -04:00
Behdad Esfahbod
743807a3ce
[Indic] Apply Indic features
...
Find the base consonant and apply basic Indic features accordingly.
Nothing complete, but does something for now. Specifically:
no Ra handling right now, and no ZWJ/ZWNJ.
Number of failing shape-complex tests goes from 174 down to 125.
Next: reorder matras.
2011-07-29 16:46:09 -04:00
Behdad Esfahbod
9f9bcceca6
Register buffer vars in Indic shaper
2011-07-28 17:07:50 -04:00
Behdad Esfahbod
be09bf6b79
Oops. This should have gone into the previous commit
2011-07-28 17:03:43 -04:00
Behdad Esfahbod
b65c06025d
Formalize buffer var allocations
2011-07-28 16:49:29 -04:00
Behdad Esfahbod
a9ad3d3460
Move more code around
...
Buffer var allocation coming into shape
2011-07-28 15:42:18 -04:00
Behdad Esfahbod
cc06c243d8
Streamline debugging infrastructure even more
2011-07-25 20:34:17 -04:00
Behdad Esfahbod
43ff203d8e
Use variadic macros for debugging
...
Looks *so* much nicer!
2011-07-25 17:35:24 -04:00
Behdad Esfahbod
decd4e3e16
Add sugar syntax for debug messages
...
Buffer debugging coming soon.
2011-07-25 16:47:02 -04:00
Behdad Esfahbod
3a81b1db89
Minor, fix leak from my previous refactorings
2011-07-25 16:30:32 -04:00
Behdad Esfahbod
f4a579bc42
Add internal API for buffer var allocation
2011-07-25 16:26:05 -04:00
Behdad Esfahbod
651e8dd79e
Start cleaning up buffer var allocation
...
I've messed up a lot of stuff recently, different parts of the
shaping process are stumbling on eachother's toes because
manually tracking what's in which buffer var is hard. I'm
going to add some internal API to track those such that mistakes
are discovered as soon as they are introduced.
2011-07-25 14:54:08 -04:00
Behdad Esfahbod
c86f932015
Move code around
2011-07-25 00:44:50 -04:00
Behdad Esfahbod
18c42850c9
Shrink space used for ligature ids
...
This frees 16bits in the glyph_info struct during the ot_layout process.
We can use the freed space in the shapers now.
2011-07-25 00:43:39 -04:00
Behdad Esfahbod
d8787493c9
Minor
2011-07-25 00:36:01 -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
63c0ef4a07
Fix decompose() implementations to work with non-starter non-composables
...
Add tests.
2011-07-21 20:58:42 -04:00
Behdad Esfahbod
5d90a342e3
Document normalization design
2011-07-21 15:25:01 -04:00
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.
2011-07-21 12:23:12 -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
d63adfc7d0
No need to handle variation-selectors seperately, they are GC=Mn
2011-07-21 11:48:57 -04:00
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.
2011-07-21 11:34:59 -04:00
Behdad Esfahbod
5c6f5982d7
Towards normalization
2011-07-21 11:31:08 -04:00
Behdad Esfahbod
cf7f43ec33
Remove stale comment
2011-07-21 01:12:26 -04:00
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().
2011-07-21 01:11:09 -04:00
Behdad Esfahbod
9111b21ef9
Add _hb_buffer_output_glyph() and _hb_buffer_skip_glyph()
2011-07-21 00:59:15 -04:00
Behdad Esfahbod
655586fe5e
Towards normalization
2011-07-21 00:52:42 -04:00
Behdad Esfahbod
49741c8633
Include variation-selectors in cluster calculation
2011-07-21 00:35:37 -04:00
Behdad Esfahbod
dd89d958c1
Fix cluster calculation for non-LTR text
2011-07-21 00:28:57 -04:00
Behdad Esfahbod
4a68684654
When forming clusters, participate all mark types
2011-07-21 00:14:01 -04:00
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.
2011-07-21 00:12:33 -04:00
Behdad Esfahbod
7b08b0a7f2
Minor
2011-07-20 23:59:07 -04:00
Behdad Esfahbod
498e1a9be6
[icu] Implement compose()/decompose()
2011-07-20 23:19:49 -04:00
Behdad Esfahbod
ffd4a436f7
Add tests for compose()/decompose()
...
Adjust glib fallback implementation.
The tests are not hooked up for ICU yet.
2011-07-20 22:31:23 -04:00
Behdad Esfahbod
fca0923b04
Minor
2011-07-20 22:16:13 -04:00
Behdad Esfahbod
26b6024962
[glib] Use g_unicode_script_to/from_iso15924() if available
2011-07-20 22:16:01 -04:00
Behdad Esfahbod
22fdc66712
[glib] Add compose() and decompose() implementations with fallback
2011-07-20 21:51:37 -04:00
Behdad Esfahbod
a54a5505a3
Minor
2011-07-20 16:42:10 -04:00
Behdad Esfahbod
22989c5ffc
Distribute hb-ot-shape-complex-indic-machine.rl
2011-07-12 11:54:58 -04:00
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().
2011-07-08 00:22:40 -04:00
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.
2011-07-08 00:09:31 -04:00
Behdad Esfahbod
d05dded167
More code generation through preprocessor
2011-07-07 23:43:47 -04:00