Commit Graph

1092 Commits

Author SHA1 Message Date
Behdad Esfahbod
300cb41417 Add XXX marks 2010-11-17 12:57:23 -05:00
Behdad Esfahbod
3a852ae7fe Save general category and combining class in the buffer for reuse 2010-11-03 16:37:24 -04:00
Behdad Esfahbod
a5ab682b9b More "unreached code" warning fixes
Ugly :(.
2010-11-03 16:10:12 -04:00
Behdad Esfahbod
4e22c7e941 Add comment 2010-11-03 16:10:12 -04:00
Behdad Esfahbod
0342034d1c Pedantic 2010-11-03 16:10:12 -04:00
Behdad Esfahbod
4a2d844c2f Minor code shuffling 2010-11-03 15:28:56 -04:00
Behdad Esfahbod
11e3ec444a Fix a few more "unreachable code" warnings 2010-11-03 15:11:04 -04:00
Behdad Esfahbod
2304856340 Remove another couple lines of dead code 2010-11-03 12:47:27 -04:00
Behdad Esfahbod
b8783c85ac Fix unreachable-code warning 2010-11-03 11:51:43 -04:00
Behdad Esfahbod
c2709119c8 Move things around some more 2010-11-02 19:12:59 -04:00
Behdad Esfahbod
194d4566ec Move buffer var allocation local 2010-11-02 19:12:59 -04:00
Behdad Esfahbod
1e7c1fcbc3 Move code around 2010-11-02 19:12:59 -04:00
Behdad Esfahbod
bf94b3ad22 Move some more code around 2010-11-02 19:12:59 -04:00
Behdad Esfahbod
6334658fe7 Simplify mark skipping logic 2010-11-02 19:12:59 -04:00
Behdad Esfahbod
8c69e65abe Rename lookup_flags to lookup_props since it's more than just flags 2010-11-02 19:12:59 -04:00
Behdad Esfahbod
98370e89d1 WIP removing external synthesized GDEF support and implementing it internally 2010-11-02 19:12:58 -04:00
Behdad Esfahbod
870e2d6eac Remove unused function 2010-11-02 19:12:58 -04:00
Behdad Esfahbod
1115890b90 More cleanup 2010-11-02 19:12:58 -04:00
Behdad Esfahbod
dbf56b1d94 More lig-id cleanup 2010-11-02 19:12:58 -04:00
Behdad Esfahbod
f6a23a0b91 More removal of lig-id code from buffer 2010-11-02 19:12:58 -04:00
Behdad Esfahbod
dd2ffd282c Minor renaming 2010-11-02 19:12:58 -04:00
Behdad Esfahbod
fe263272a2 Move setting lig_id/component out of buffer and to the gsub code 2010-11-02 19:12:58 -04:00
Behdad Esfahbod
2e2b2480c0 Always allocate new ligature id
No practical point in reusing ligature ids.
2010-11-02 19:12:58 -04:00
Behdad Esfahbod
bf07d5a29c Set component=0 for ligature glyph 2010-11-02 19:12:58 -04:00
Behdad Esfahbod
37ab877149 Remove comment 2010-11-02 19:12:58 -04:00
Behdad Esfahbod
88474c6fda Get rid of the OpenType-specific internal buffer representation
Add variant integers to buffer item types.  More cleanup coming.
2010-11-02 19:12:58 -04:00
Behdad Esfahbod
6cb8c34930 Add hb_var_int_t 2010-11-02 19:12:57 -04:00
Behdad Esfahbod
f22802431a Remove trailing comma 2010-11-02 19:12:57 -04:00
Behdad Esfahbod
13528d0c78 Supposedly implement vertical support in GPOS
Not tested at all.
2010-10-27 14:09:27 -04:00
Behdad Esfahbod
9624de5b49 Clarify cursive_chain (and change its sign) 2010-10-27 13:44:59 -04:00
Behdad Esfahbod
d6c9eadb88 Remove more pointless LONGTERMTODO items 2010-10-27 12:34:50 -04:00
Behdad Esfahbod
e204674fe3 Rename hb_ot_layout_get_lig_carets() to hb_ot_layout_get_ligature_carets() 2010-10-27 12:32:02 -04:00
Behdad Esfahbod
3357d145f8 Implement vertical support in get_lig_carets() 2010-10-27 12:30:46 -04:00
Behdad Esfahbod
8eeed7eddc Remove LONGTERMTODO item that I'll never fix 2010-10-27 12:07:49 -04:00
Behdad Esfahbod
184a5279c6 Remove unused macro 2010-10-27 12:00:49 -04:00
Behdad Esfahbod
af5d02a269 Rewrite Cursive joining to act more like other pair lookups
Look forward for next character instead of joining to the last character.
2010-10-27 11:54:26 -04:00
Behdad Esfahbod
ea22c749c7 Fix Cursive positioning
Test case: "مرا" rendered using IranNastaliq.
2010-10-27 11:09:48 -04:00
Behdad Esfahbod
aefdb64689 Fix segfault with Arabic combining marks 2010-10-27 10:40:39 -04:00
Behdad Esfahbod
248e3c2ba4 Oops, remove extra mask setting that broke complex shaping 2010-10-27 01:23:14 -04:00
Behdad Esfahbod
502f4cba3e Divide get_metrics into get_advance and get_extents
Graphite module not updated.
Bump version to 0.3.
2010-10-27 01:13:56 -04:00
Behdad Esfahbod
ec6c0e54d3 Fix blob leak 2010-10-26 11:28:14 -04:00
Behdad Esfahbod
bd7378b2ef Massage mask setting a bit more
Still finding the exact correct way the masks should be set.
2010-10-13 18:33:16 -04:00
Behdad Esfahbod
961f9baa7b Oops, actually set global mask 2010-10-13 17:17:00 -04:00
Behdad Esfahbod
39dede9fff Make sure boolean features always use value=1
Previously boolean features turned on the entire feature mask.  This is
wrong if feature is Alternate and user has provided values bigger than one.
Though, I don't think other engines support such corner cases.
2010-10-13 15:54:06 -04:00
Behdad Esfahbod
3506b2e78d Return early if mask is 0 2010-10-13 15:38:52 -04:00
Behdad Esfahbod
5c1c8c9c50 Make sure feature values don't leak out of their mask 2010-10-13 15:36:38 -04:00
Behdad Esfahbod
852912fc2d Fix applying default-value for features
Previously if a default global feature was overrided by a non-global
user feature, we were not setting any default mask for the feature,
essentially disabling the feature by default.  Fix that.
2010-10-13 15:34:50 -04:00
Behdad Esfahbod
2989be4919 Set user masks after complex masks 2010-10-13 15:18:29 -04:00
Behdad Esfahbod
3111b8a0d5 Fix stupid bug, oops 2010-10-13 10:41:53 -04:00
Behdad Esfahbod
758f68b860 Fix Arabic shaper
It's tested now.  It works!
2010-10-12 17:37:44 -04:00
Behdad Esfahbod
13403bc67a Hookup Arabic shaper!
Not tested yet.
2010-10-12 17:23:54 -04:00
Behdad Esfahbod
57ac0ecb78 Merge clearing masks and setting global masks 2010-10-12 17:07:02 -04:00
Behdad Esfahbod
fc96596b7c Form clusters before setting masks 2010-10-12 17:00:40 -04:00
Behdad Esfahbod
1e80782244 Clear masks before setting them up, not after! 2010-10-12 17:00:07 -04:00
Behdad Esfahbod
fd3d32d31c Add hb_ot_shape_execute()
Not public yet.
2010-10-12 16:57:47 -04:00
Behdad Esfahbod
49baa1f69e Add hb_ot_complex_shaper_t stuff and start hooking Arabic shaper up 2010-10-12 16:50:36 -04:00
Behdad Esfahbod
605ed468f3 Add hb_ot_shape_plan_t
This is the object that a separate plan/execute shaping API will use in
between the two stages.
2010-10-12 16:19:38 -04:00
Behdad Esfahbod
895fb5d364 Refactor, in a different direction 2010-10-12 16:00:21 -04:00
Behdad Esfahbod
d2ba016ca1 More refactoring 2010-10-12 15:35:45 -04:00
Behdad Esfahbod
66e487dfbf Update Arabic shaping table to Unicode 6.0.0. 2010-10-12 13:51:19 -04:00
Behdad Esfahbod
f4792d99ee Fix infinite loop!
Untested code is indeed buggy code.

Mozilla bug #603352.
2010-10-12 12:32:18 -04:00
Behdad Esfahbod
993d1e786a Fix missing negation in unreachable code!
Mozilla bug #603346
2010-10-12 11:17:30 -04:00
Behdad Esfahbod
52601275d5 More separation 2010-10-08 20:38:46 -04:00
Behdad Esfahbod
6b7e675862 Minor 2010-10-08 20:30:04 -04:00
Behdad Esfahbod
aa9c450bb2 Enable 'rtlm' mirroring 2010-10-08 20:27:38 -04:00
Behdad Esfahbod
36925f695d Rename hb_mask_allocator_t to hb_ot_map_t
hb_ot_plan_t may be a better name, donno.
2010-10-08 20:21:09 -04:00
Behdad Esfahbod
f5dd3be46b Improve checks 2010-10-08 20:16:23 -04:00
Behdad Esfahbod
5a2b0b3878 Add hb-ot-map.cc 2010-10-08 20:14:57 -04:00
Behdad Esfahbod
ecc4550ed7 Fix feature overriding 2010-10-08 20:05:29 -04:00
Behdad Esfahbod
8f08c32750 Minor cleanup 2010-10-08 19:51:03 -04:00
Behdad Esfahbod
a806762a31 Add hb-ot-shape-private.hh 2010-10-08 19:21:46 -04:00
Behdad Esfahbod
4924affe0f Add hb-ot-map-private.hh 2010-10-08 19:18:16 -04:00
Behdad Esfahbod
a7c5046d6b Add private hb_segment_properties_t 2010-10-08 18:47:47 -04:00
Behdad Esfahbod
b897c607d9 Flip the OT bit-allocation vs gsub/gpos inside-out
We now build our entire attack plan before jumping in.
2010-10-08 18:41:57 -04:00
Behdad Esfahbod
e89b7d2a61 Logically separate feature collection 2010-10-08 12:29:59 -04:00
Behdad Esfahbod
5b88908f12 Minor 2010-10-08 12:23:01 -04:00
Behdad Esfahbod
5360ce0c5c Move some more code around 2010-10-07 21:21:11 -04:00
Behdad Esfahbod
d9c7260788 Minor 2010-10-07 21:19:54 -04:00
Behdad Esfahbod
efe0d682e8 Simplify compiling lookups 2010-10-07 21:12:46 -04:00
Behdad Esfahbod
476c94218b Rename 2010-10-07 17:47:33 -04:00
Behdad Esfahbod
34db6f031d Add XXX note 2010-10-07 01:21:19 -04:00
Behdad Esfahbod
98aa3f6544 Call hb_ot_shape_setup_lookups_complex() 2010-10-06 00:23:36 -04:00
Behdad Esfahbod
f1d07885dc Rename setup_lookups() 2010-10-06 00:21:37 -04:00
Behdad Esfahbod
affc5abac7 Move table_tag to hb_ot_shape_context_t 2010-10-06 00:18:16 -04:00
Behdad Esfahbod
967240dd8b Add internal hb_ot_shape_context_t 2010-10-05 23:00:05 -04:00
Behdad Esfahbod
3eb936f153 Add Arabic/Syriac/N'ko shaping logic
Not hooked up just yet.
2010-10-05 19:22:06 -04:00
Behdad Esfahbod
e81d7afe6e Add hb_face_get_upem() 2010-10-04 18:18:48 -04:00
Behdad Esfahbod
bd361945a8 Add API comments 2010-10-04 17:22:57 -04:00
Behdad Esfahbod
645f6f265b Add is_mutable() functions
Correspond to the make_mutable() ones.
2010-10-04 17:01:01 -04:00
Behdad Esfahbod
19c0eab8cf Add getters for all setter APIs
One in particular is not a straight getter: hb_font_unset_funcs() is
special because of the specific needs of the lifecycle management of
the user_data object.
2010-10-04 16:45:21 -04:00
Behdad Esfahbod
f0feb084b0 Minor 2010-10-03 19:09:39 -04:00
Behdad Esfahbod
ac0c1663fa Avoid div-by-zero, validate upem 2010-10-01 19:09:23 -04:00
Behdad Esfahbod
7f97d2cd90 Pedantic 2010-10-01 19:09:01 -04:00
Behdad Esfahbod
2841436926 Don't zero glyph advances in MarkToBase and similar lookups
See email thread "Should MarkToBase attachment zero the mark advance?"
started by Jonathan Kew on 23 August 2010 for details.
2010-10-01 18:32:45 -04:00
Behdad Esfahbod
36b3862009 One fewer cmp() implementation... 2010-09-29 12:10:24 -04:00
Behdad Esfahbod
4e573715ae Improve cmp function parameter namings and casts
No semantic change.
2010-09-28 16:28:57 -04:00
Behdad Esfahbod
dca8aff246 Add comment re DejaVu Sans Mono having 'dflt' script 2010-09-28 16:25:45 -04:00
Behdad Esfahbod
9dc45401c0 Fix stupid bug in bsearch cmp function! 2010-09-28 16:23:28 -04:00
Behdad Esfahbod
f2a30bd605 Remove unimplemented method hb_font_get_funcs()
Got to add a suitable replacement.
2010-09-23 10:27:08 -04:00
Behdad Esfahbod
7b9a38a112 Add test.c using public API 2010-09-22 17:42:59 -04:00