Commit Graph

1092 Commits

Author SHA1 Message Date
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
Behdad Esfahbod
9ea7368fce Fix hb_ot_layout leak 2010-09-22 17:38:44 -04:00
Behdad Esfahbod
8e577acae2 Fix blob refcounting with insane SFNT table directories 2010-09-22 17:37:02 -04:00
Behdad Esfahbod
5bd1e95236 Speedup Device table delta computation for common cases 2010-09-22 16:46:18 -04:00
Behdad Esfahbod
ed4acbde9c Fix NULL dereference
Reported by Jonathan Kew.  Face table handling needs to be redone
anyway, but fix this for now.
2010-08-16 14:36:27 -04:00
Behdad Esfahbod
258305c2a5 [GPOS] Fix div-by-zero
Patch by Jonathan Kew.  Mozilla bug #465728.
2010-08-13 14:10:02 -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
cc6d52279d De-C++ where possible
Helps with avoiding many "extern C" declarations in source files.
2010-07-23 15:00:13 -04:00
Behdad Esfahbod
0dd200d28f Header dep cleanup 2010-07-23 14:56:29 -04:00
Behdad Esfahbod
fb0d252462 dos2unix 2010-07-23 14:54:22 -04:00
Behdad Esfahbod
81408cd51c Don't use "operator ="
Some compilers don't like operator = defined on members of union members
either.  Reported by Ginn Chen for Sun Studio compilers.
2010-07-23 14:46:57 -04:00
Behdad Esfahbod
4f801bd658 Mozilla bug 580233 - check for zero-length record in hb sanitizer.
Patch / report by Jonathan Kew.
2010-07-21 16:37:01 -04:00
Behdad Esfahbod
17e9ff938b Fix 64bit issues with debug prints 2010-07-15 11:21:34 -07:00
Behdad Esfahbod
fd56ae4963 Don't bother sorting, it's a safe font error if the array is not sorted 2010-07-08 00:53:40 -04:00
Behdad Esfahbod
cc8a4abea6 Use bsearch where applicable 2010-07-08 00:40:04 -04:00
Behdad Esfahbod
2f418f5709 Remove useless TODO 2010-07-07 22:07:40 -04:00
Behdad Esfahbod
da8edbb622 Fix header 2010-06-09 07:15:39 -04:00
Behdad Esfahbod
d05d13df02 Add a test for header preprocessor guards 2010-06-09 07:15:03 -04:00
Behdad Esfahbod
0f0cd9d361 Fix header tags 2010-06-09 06:32:56 -04:00
Behdad Esfahbod
f2a1b411b1 Followup fix for variation-selectors
Patch from Jonathan Kew
2010-06-03 11:37:51 -04:00
Behdad Esfahbod
a224b4d502 Fix skipping variation-selectors 2010-06-02 22:31:41 -04:00
Behdad Esfahbod
81a77b115d Make feature sorting stable 2010-06-01 23:03:54 -04:00
Behdad Esfahbod
fdc322a820 Minor 2010-05-28 20:55:52 -04:00
Behdad Esfahbod
f062ec6bb2 Further simplify mask allocator 2010-05-28 20:54:43 -04:00
Behdad Esfahbod
8af45fda47 Fix global feature handling 2010-05-28 20:41:20 -04:00
Behdad Esfahbod
e04685ee7b Simplify mask allocation 2010-05-28 20:37:06 -04:00
Behdad Esfahbod
0e235d0fc9 Towards a mask allocator 2010-05-28 20:27:30 -04:00
Behdad Esfahbod
81c5e8724b Allow disabling default features
Patch from Jonathan Kew
2010-05-28 18:31:16 -04:00
Behdad Esfahbod
2163afbf35 Add note about UTF-8 decoder 2010-05-27 14:04:15 -04:00
Behdad Esfahbod
226faa58f4 Fix loop 2010-05-27 11:42:34 -04:00
Martin Hosken
56bef5680c Fixes to Python and Graphite from Martin 2010-05-27 11:41:47 -04:00
Behdad Esfahbod
b485da0b71 Disable Graphite as it crashes all over the place... 2010-05-27 11:39:19 -04:00
Behdad Esfahbod
93ac709b1f Cypriot is RTL 2010-05-26 16:22:00 -04:00
Behdad Esfahbod
15c7379c16 Revert "Merge remote branch 'martin/master'"
This reverts commit 80af2812fb, reversing
changes made to c442672ec2.
2010-05-26 10:48:10 -04:00
Behdad Esfahbod
80af2812fb Merge remote branch 'martin/master' 2010-05-24 18:14:24 +01:00
Behdad Esfahbod
c442672ec2 Fix struct initializers 2010-05-24 18:02:32 +01:00
Behdad Esfahbod
f5ac9de259 Minor 2010-05-24 18:01:09 +01:00
Behdad Esfahbod
f97bf4f812 Make sure we initialize all callbacks upon creation
Also fixes issue with unicode callbacks never being set really.
2010-05-24 17:50:19 +01:00
Behdad Esfahbod
bf36a1074a Move all callback functions in a vtable structs 2010-05-24 17:46:21 +01:00
Martin Hosken
3109a86add hb-graphite now no longer has -ve advances within clusters. Fix infinite loop in tag_to_script(). python fixed to use tag_to_script and allow hbtestfont to be passed font files, where fontconfig knows about them. 2010-05-24 13:25:37 +01:00
Martin Hosken
72631c9d06 Merge branch 'master' of git://git.freedesktop.org/~behdad/harfbuzz-ng 2010-05-22 09:38:02 +01:00
Martin Hosken
1432ab15c1 Add graphical output to hbtestfont 2010-05-22 00:56:40 +01:00
Behdad Esfahbod
bbc7a99d01 Move mirroring around a bit 2010-05-21 18:25:08 +01:00
Behdad Esfahbod
bd0987386b Add a few more standard features 2010-05-21 18:06:35 +01:00
Behdad Esfahbod
75f3469ca6 Add note 2010-05-21 17:59:04 +01:00
Behdad Esfahbod
1094a294f6 Add rtlm 2010-05-21 17:58:20 +01:00
Behdad Esfahbod
074ea78749 Add ltra, ltrm, and rtla features 2010-05-21 17:53:10 +01:00
Behdad Esfahbod
1ce7b87c4d Cleanup bitmask allocation 2010-05-21 17:31:45 +01:00
Behdad Esfahbod
dd22a8f7bf Add note 2010-05-21 16:43:17 +01:00
Martin Hosken
cbd1d6a63a Rename Grxxx to HbGrxxx 2010-05-21 15:16:43 +01:00
Martin Hosken
0375bdd202 Rename classes from Grxxx to HbGrxxx 2010-05-21 15:13:26 +01:00
Behdad Esfahbod
a5a72e004b Add hb-ot-shape.h, oops. 2010-05-21 15:12:52 +01:00
Behdad Esfahbod
aa62a402a7 Fix Makefile to install hb-ot-shape.h 2010-05-21 14:42:11 +01:00
Behdad Esfahbod
9722b8f005 Simple renames 2010-05-21 14:37:47 +01:00
Behdad Esfahbod
02f28550d7 Graphite also forces us to link to libstdc++ currently 2010-05-21 14:37:28 +01:00
Behdad Esfahbod
ca663bb23c Move main shaper code into hb_ot_shape() 2010-05-21 14:34:23 +01:00
Behdad Esfahbod
7acd232d36 Fix test failing 2010-05-21 14:20:48 +01:00
Behdad Esfahbod
dd47924d88 Fix warnings 2010-05-21 14:18:08 +01:00
Behdad Esfahbod
305ba86715 Import Graphite shaping backend by Martin Hosken 2010-05-21 14:15:39 +01:00
Behdad Esfahbod
83f34677bc Add hb_tag_from_string() 2010-05-21 13:43:49 +01:00
Behdad Esfahbod
4a9a5c0b06 Don't allocate bits for features not available 2010-05-21 13:33:46 +01:00
Behdad Esfahbod
e53d77142a Speed up feature mask setting
Patch from Jonathan Kew.
2010-05-21 13:32:38 +01:00
Behdad Esfahbod
4fa67f34ec Add Unicode 5.2 scripts 2010-05-21 13:29:12 +01:00
Behdad Esfahbod
ee1b322100 Fix feature mask setting 2010-05-21 12:55:57 +01:00
Behdad Esfahbod
b490fa3433 Add hb_ot_tag_to_script() 2010-05-21 11:15:07 +01:00
Behdad Esfahbod
280af1bddb Let hb_face_get_table() return NULL if table not found 2010-05-20 18:33:35 +01:00
Behdad Esfahbod
1cdbfd944e Fix alternate, again 2010-05-20 17:47:28 +01:00
Behdad Esfahbod
fdca3d5160 Fix alternate off-by-one 2010-05-20 17:46:20 +01:00
Behdad Esfahbod
b634beb39e Fix delta scale, again... 2010-05-20 17:44:52 +01:00
Behdad Esfahbod
40335d4533 Remove unused operator 2010-05-20 17:35:14 +01:00
Behdad Esfahbod
f7acd8df51 Do alternate glyph selection!
Kinda hand-wavy right now.  Not tested.
2010-05-20 17:26:35 +01:00
Behdad Esfahbod
750a229455 get_table() is allowed to return NULL. Use that to simplify code 2010-05-20 16:23:27 +01:00
Behdad Esfahbod
99d9ef785f Write hb_face_create_for_data() in terms of hb_face_create_for_tables()
Fixes lack of head_table initialization in create_for_tables() also.
2010-05-20 15:47:49 +01:00
Behdad Esfahbod
6774463883 Apply user features to ranges! 2010-05-20 15:41:20 +01:00
Behdad Esfahbod
9b60233385 Add _hb_bit_storage() 2010-05-20 15:31:12 +01:00
Behdad Esfahbod
6b1b957f6d Add lookup_map 2010-05-20 15:14:44 +01:00
Behdad Esfahbod
60010a0c4d Update always-apply mask from 0xFFFF to 1
We plan to use the first bit to be always on.
2010-05-20 14:05:02 +01:00
Behdad Esfahbod
009aad5678 Invert the mask logic
Before, the mask in the buffer was inverted.  That is, a 0 bit meant
feature should be applied and 1 meant not applied, whereas in the
lookups, the logic was positive.

Now both are in sync.  When calling hb_buffer_add_glyph() manually,
the mask should be 1 instead of 0.
2010-05-20 14:00:57 +01:00
Behdad Esfahbod
7f411dbfd9 Apply user features
No ranges yet
2010-05-20 13:40:18 +01:00
Behdad Esfahbod
0db299ccad Change hb_feature_t to keep tag/int instead of string 2010-05-20 13:30:09 +01:00
Behdad Esfahbod
0a4399ca22 Fix scale issues
hb_font_set_scale() now sets the value to be used to represent a unit
pixel.  For example, if rendering a 10px font with a 26.6 representation,
you would set scale to (10 << 6).  For 10px in 16.16 you would set it to
(10 << 16).  This space should be the same space that the get_glyph_metrics
and get_kerning callbacks work in.
2010-05-19 15:45:06 -04:00
Behdad Esfahbod
cf5585cfa6 Add 'head' table 2010-05-19 12:03:35 -04:00
Behdad Esfahbod
e29caf3f94 Add LONGDATETIME 2010-05-19 11:47:17 -04:00
Behdad Esfahbod
f415755fdf Minor 2010-05-17 15:14:14 -04:00
Behdad Esfahbod
73af7756dc Indent 2010-05-14 23:38:08 -04:00
Behdad Esfahbod
3567b87cce Add an inline version of hb_buffer_ensure() 2010-05-14 23:28:44 -04:00
Behdad Esfahbod
a6a79df5fe Handle malloc failture in the buffer 2010-05-14 23:20:16 -04:00
Behdad Esfahbod
ca54a12658 Minor 2010-05-14 22:25:42 -04:00
Behdad Esfahbod
910a33fe84 Update buffer docs 2010-05-14 22:13:38 -04:00
Behdad Esfahbod
36b73c80df Shortening buffer accessors: rename buffer->in_pos to buffer->i 2010-05-14 22:10:39 -04:00
Behdad Esfahbod
29427c5c51 Shortening buffer accessors: rename buffer->out_length to buffer->out_len 2010-05-14 22:08:22 -04:00
Behdad Esfahbod
6960350be9 Shortening buffer accessors: rename buffer->in_length to buffer->len 2010-05-14 22:07:46 -04:00
Behdad Esfahbod
1b621823f3 Shortening buffer accessors: rename buffer->positions to buffer->pos 2010-05-14 22:05:53 -04:00
Behdad Esfahbod
9d5e26df08 Shortening buffer accessors: rename buffer->out_string to buffer->out_info 2010-05-14 22:03:11 -04:00
Behdad Esfahbod
7e7007a1c9 Shortening buffer accessors: rename buffer->in_string to buffer->info 2010-05-14 22:02:37 -04:00
Behdad Esfahbod
8e6b6bb293 Merge buffer->out_pos and buffer->out_length 2010-05-14 21:58:22 -04:00
Behdad Esfahbod
22f668eb9a Remove the unused BUFFER macro 2010-05-14 21:41:04 -04:00