Commit Graph

79 Commits

Author SHA1 Message Date
Behdad Esfahbod
fb194b8794 unicode: Cleanup implementation 2011-04-20 02:27:39 -04:00
Ryan Lortie
2fd0c577e3 [API] unicode: rework virtual functions for subclassing
Unicode data providers can now be subclassed, including support for
chain-up.  The interface should now be nicely bindable, as well.

Also fix glib unicode funcs that where broken after hb_script_t
changes.  Nicely caught by the test-unicode.c added in this commit.
2011-04-20 00:19:20 -04:00
Behdad Esfahbod
8f0d7e0c3f Remove hb_buffer_clear_positions(), add hb_ot_layout_position_start() 2011-04-15 19:08:43 -04:00
Behdad Esfahbod
5814dfa3f5 Cosmetic 2011-04-15 14:41:04 -04:00
Behdad Esfahbod
99b74760a4 Rename hb_category_t to hb_unicode_general_category_t 2011-04-11 15:47:40 -04:00
Behdad Esfahbod
a71b9c8579 Disable 'cswh' by default except for Arabic shaper
That better matches OpenType spec.  Note that we enable it for all
Arabic-shaper scripts.  Ie. we enable it by default for Syriac too,
but the SyriacOT spec does not require it.  I think this is a more
useful compromise than special-casing for Arabic script alone.
2011-04-06 14:04:56 -04:00
Behdad Esfahbod
3286fc0e9a Let hb_shape() guess script and direction...
- Rename HB_SCRIPT_INVALID_CODE to HB_SCRIPT_INVALID

- Add HB_DIRECTION_INVALID

- Make hb_script_get_horizontal_direction() public

- Make hb_shape() guess script from buffer text (first non-common
  non-inherit script) if buffer script is set to HB_SCRIPT_INVALID (this
  is NOT the default.)

- Make hb_shape() guess direction from buffer script if buffer direction
is set to HB_DIRECTION_INVALID (this is NOT the default.)

- Make hb-view.c set INVALID script and direction on the buffer.

The above changes are meant to make hb-view fairly useful for uni-script
uni-direction text.  The guessing behavior however is NOT the default of
hb_shape() and must be asked for explicitly.  This is intended, because
the guess is not a suitable substitute to full-fledged bidi and script
segmentation.  It's just a testing tool.
2011-03-16 14:53:32 -03:00
Behdad Esfahbod
bbbbe80ec9 Rename original_direction to target_direction 2010-12-07 16:22:02 -05:00
Behdad Esfahbod
ee8aaf976a Fix arabic shaping of LTR text
We should ensure-direction before doing any complex work.  The only
exception is mirroring that needs to see the original / final direction,
not the native.  Handle that.
2010-12-07 16:20:42 -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
1e7c1fcbc3 Move code around 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
dd2ffd282c Minor renaming 2010-11-02 19:12:58 -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
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
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
2989be4919 Set user masks after complex masks 2010-10-13 15:18:29 -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
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
4924affe0f Add hb-ot-map-private.hh 2010-10-08 19:18:16 -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
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
4e573715ae Improve cmp function parameter namings and casts
No semantic change.
2010-09-28 16:28:57 -04:00
Behdad Esfahbod
2422c4b96d Add TODO 2010-08-13 14:00:34 -04:00
Behdad Esfahbod
27f0b092a1 Logically separate feature allocation from application 2010-07-23 17:35:54 -04:00
Behdad Esfahbod
6cf63132dc Minor 2010-07-23 17:32:26 -04:00
Behdad Esfahbod
4e4ef24e46 Towards separating bit allocation from shaping 2010-07-23 17:22:11 -04:00
Behdad Esfahbod
acdba3f90b Prefer C linkage 2010-07-23 15:39:27 -04:00
Behdad Esfahbod
f2a1b411b1 Followup fix for variation-selectors
Patch from Jonathan Kew
2010-06-03 11:37:51 -04:00