Commit Graph

1490 Commits

Author SHA1 Message Date
Behdad Esfahbod 74ef81a0b0 Fix make distcheck 2011-08-24 19:36:50 +02:00
Behdad Esfahbod 24bcdbcc06 Add hb-ot-hmtx-table.hh
Oops!
2011-08-24 19:13:15 +02:00
Behdad Esfahbod a3bd8a0e18 [graphite] Rewrite properly 2011-08-24 03:25:57 +02:00
Behdad Esfahbod 5072934c35 Minor 2011-08-24 02:24:27 +02:00
Behdad Esfahbod 71388b3ee7 [uniscribe] Minor 2011-08-24 02:09:04 +02:00
Behdad Esfahbod cd2b901027 [graphite] Minor 2011-08-24 01:48:03 +02:00
Behdad Esfahbod 834af3b48a [graphite] Remove hb_graphite2_feature_check()
I don't see how this function can be useful.
2011-08-24 01:45:47 +02:00
Behdad Esfahbod 1f49cf32c9 Add graphite2 integration from Martin Hosken
To be modified, a lot.
2011-08-24 01:32:41 +02:00
Behdad Esfahbod 0e6d36d8a3 Minor 2011-08-24 01:31:29 +02:00
Behdad Esfahbod efde811325 Add a constructor for hb_prealloced_array_t
Fixes build with MSVC.
2011-08-23 00:04:57 +02:00
Behdad Esfahbod d75333f166 Add gobject enum support, but disabled for now
need to figure out the naming.  The generated code doesn't have the
right name.
2011-08-19 19:59:24 +02:00
Behdad Esfahbod 7d235d272f Flesh out tt funcs a bit 2011-08-19 19:23:28 +02:00
Behdad Esfahbod b9415e76d7 [API] Add hb_font_set_funcs_data() 2011-08-19 19:20:30 +02:00
Behdad Esfahbod e6c09cdf43 Remove the pre_allocate argument from hb_buffer_create()
For two reasons:

1. User can always call hb_buffer_pre_allocate() themselves, and

2. Now we do a pre_alloc in add_utfX anyway, so the total number of
reallocs is limited to a small number (~3) anyway.  This just makes the
API cleaner.
2011-08-19 19:20:26 +02:00
Behdad Esfahbod 187bdeaa6c Do (nothing for) hmtx sanitize 2011-08-17 19:03:06 +02:00
Behdad Esfahbod d6016e4910 Fix name-table sanitize 2011-08-17 15:00:18 +02:00
Behdad Esfahbod ae9877dea6 Add hhea-table support 2011-08-17 15:00:10 +02:00
Behdad Esfahbod 7a750ac33e Rename table files from eg maxp-private.hh to maxp-table.hh 2011-08-17 14:19:59 +02:00
Behdad Esfahbod 0b7e4d9f20 [ft] FT_Get_Advance() for advance-width callbacks
Using graphite2's comparerenderer suggests that this makes hb-ft 15
times faster.  No caching layer needed anymore.
2011-08-15 20:41:59 +02:00
Behdad Esfahbod 4e9ff1dd6e Pre-allocate buffers when adding string
We do a conservative estimate of the number of characters, but still,
this limits the number of buffer reallocs to a small constant.
2011-08-15 16:21:22 +02:00
Behdad Esfahbod 553bc3de82 Minor 2011-08-15 16:21:06 +02:00
Behdad Esfahbod 254142bb67 [ft] FT_Select_Charmap() when we create face 2011-08-15 16:15:44 +02:00
Behdad Esfahbod a4cbd03dd1 Apply 'locl' with 'ccmp' in Arabic shaper
According to Peter Constable this is indeed what Uniscribe has been
doing for years.

Mozilla Bug 667166 - wrong shape of letter when it comes at the end of
word in the arabic version of Firefox 5.0
2011-08-15 09:52:05 +02:00
Behdad Esfahbod c214cff55c Start adding gobject-introspection support 2011-08-14 15:17:51 +02:00
Behdad Esfahbod 9527fb200f Fix missing return 2011-08-13 19:03:48 +02:00
Behdad Esfahbod 77a3287695 Minor 2011-08-13 17:16:45 +02:00
Behdad Esfahbod d6660356dd Add uniscribe font getters 2011-08-10 22:08:36 +02:00
Behdad Esfahbod 01ec13a1d9 Implement hb_ft_font_get_face 2011-08-10 22:00:35 +02:00
Behdad Esfahbod 0501573ded Fix const correctness in the API 2011-08-10 16:25:56 +02:00
Behdad Esfahbod 511a136f0c Move hb-view into util/ 2011-08-09 15:03:00 +02:00
Behdad Esfahbod d753ac78da [uniscribe] Remove zerowidth glyphs from output 2011-08-09 14:03:12 +02:00
Behdad Esfahbod ddd247b0c5 Minor 2011-08-09 11:44:42 +02:00
Behdad Esfahbod 1b8196c986 Add fallback shaper 2011-08-09 11:37:46 +02:00
Behdad Esfahbod 13a601fe99 [FT] Don't make font immutable 2011-08-09 11:36:54 +02:00
Behdad Esfahbod 38b2118724 [API] Add hb_ft_font_set_funcs(), remove hb_ft_get_font_funcs()
Remove hb_ft_get_font_funcs() as it cannot be used by the user anyway.

Add hb_ft_font_set_funcs().  Which will make the font internally use
FreeType.  That is, no need for the font to have created using the
hb-ft API.  Just create using hb_face_create()/hb_font_create() and
then call this on the font (after having set font scale).  This
internally creates an FT_Face and attached to the font.
2011-08-09 11:10:32 +02:00
Behdad Esfahbod 255f176fdc Minor 2011-08-09 08:35:07 +02:00
Behdad Esfahbod a9057eb3f3 [uniscribe] Unbreak 2011-08-09 00:47:55 +02:00
Behdad Esfahbod 33ccc77902 [API] Make set_user_data() functions take a replace parameter
We need this to set data on objects safely without worrying that some
other thread unsets it by setting it at the same time.
2011-08-09 00:43:24 +02:00
Behdad Esfahbod 944b2ba1ce [buffer] Make API take signed int length
Since we already switched to accepting -1 as 'zero-terminated'.
2011-08-09 00:23:58 +02:00
Behdad Esfahbod de1e1cf9bc [FT] Adapt to new face API 2011-08-09 00:19:38 +02:00
Behdad Esfahbod bf3eef540f [uniscribe] Cleanup backend 2011-08-09 00:14:22 +02:00
Behdad Esfahbod 3897335c76 [API] Sort out get_blob API
hb_face_get_blob() renamed to hb_face_reference_blob(), returns a
reference now.

hb_face_[sg]et_index() added.

hb_face_set_upem() added.
2011-08-08 23:37:41 +02:00
Behdad Esfahbod e715784be3 Rename get_table to reference_table in all API 2011-08-08 21:43:06 +02:00
Behdad Esfahbod 670c873499 Fix shaper ordering logic 2011-08-08 21:36:24 +02:00
Behdad Esfahbod cc797e0d53 Minor 2011-08-08 03:50:38 +02:00
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