Behdad Esfahbod [Thu, 25 Aug 2011 20:46:21 +0000 (22:46 +0200)]
[graphite2] Bail if grface is NULL
Behdad Esfahbod [Thu, 25 Aug 2011 07:08:53 +0000 (09:08 +0200)]
Reorder combining-class to better suit Arabic shadda mark-mark positioning
As reported by Khaled on the list:
"After the introduction of canonical reordering of combining marks
(commit 34c22f8), I'm no longer able to do mark/mark substitution or
positioning for mark sequences that involve shadda as a first mark (or
most interesting sequences at least).
"After some digging, it turned out that shadda have a ccc=33 while most
Arabic marks that combine with it have a lower ccc value, which results
in the shadda being reordered after the other mark which,
unsurprisingly, breaks my contextual substitution and mkmk anchors."
See:
http://unicode.org/faq/normalization.html#8
http://unicode.org/faq/normalization.html#9
Behdad Esfahbod [Wed, 24 Aug 2011 17:16:13 +0000 (19:16 +0200)]
Fix make distcheck
Behdad Esfahbod [Wed, 24 Aug 2011 17:13:15 +0000 (19:13 +0200)]
Add hb-ot-hmtx-table.hh
Oops!
Behdad Esfahbod [Wed, 24 Aug 2011 01:22:49 +0000 (03:22 +0200)]
[graphite] Rewrite properly
Behdad Esfahbod [Wed, 24 Aug 2011 00:24:27 +0000 (02:24 +0200)]
Minor
Behdad Esfahbod [Wed, 24 Aug 2011 00:12:05 +0000 (02:12 +0200)]
[configure] Fix graphite bits
Behdad Esfahbod [Wed, 24 Aug 2011 00:09:04 +0000 (02:09 +0200)]
[uniscribe] Minor
Behdad Esfahbod [Tue, 23 Aug 2011 23:47:25 +0000 (01:47 +0200)]
[graphite] Minor
Behdad Esfahbod [Tue, 23 Aug 2011 23:45:47 +0000 (01:45 +0200)]
[graphite] Remove hb_graphite2_feature_check()
I don't see how this function can be useful.
Behdad Esfahbod [Tue, 23 Aug 2011 23:29:25 +0000 (01:29 +0200)]
Add graphite2 integration from Martin Hosken
To be modified, a lot.
Behdad Esfahbod [Tue, 23 Aug 2011 23:31:29 +0000 (01:31 +0200)]
Minor
Behdad Esfahbod [Mon, 22 Aug 2011 22:04:57 +0000 (00:04 +0200)]
Add a constructor for hb_prealloced_array_t
Fixes build with MSVC.
Behdad Esfahbod [Fri, 19 Aug 2011 17:59:24 +0000 (19:59 +0200)]
Add gobject enum support, but disabled for now
need to figure out the naming. The generated code doesn't have the
right name.
Behdad Esfahbod [Wed, 17 Aug 2011 21:55:29 +0000 (23:55 +0200)]
Flesh out tt funcs a bit
Behdad Esfahbod [Wed, 17 Aug 2011 17:21:44 +0000 (19:21 +0200)]
[API] Add hb_font_set_funcs_data()
Behdad Esfahbod [Wed, 17 Aug 2011 17:07:59 +0000 (19:07 +0200)]
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.
Behdad Esfahbod [Wed, 17 Aug 2011 17:03:06 +0000 (19:03 +0200)]
Do (nothing for) hmtx sanitize
Behdad Esfahbod [Wed, 17 Aug 2011 12:47:41 +0000 (14:47 +0200)]
Fix name-table sanitize
Behdad Esfahbod [Wed, 17 Aug 2011 12:43:45 +0000 (14:43 +0200)]
Add hhea-table support
Behdad Esfahbod [Wed, 17 Aug 2011 12:19:59 +0000 (14:19 +0200)]
Rename table files from eg maxp-private.hh to maxp-table.hh
Behdad Esfahbod [Mon, 15 Aug 2011 18:41:59 +0000 (20:41 +0200)]
[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.
Behdad Esfahbod [Mon, 15 Aug 2011 17:03:43 +0000 (19:03 +0200)]
Fix falloffs of the GOption conversion
Behdad Esfahbod [Mon, 15 Aug 2011 14:21:22 +0000 (16:21 +0200)]
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.
Behdad Esfahbod [Mon, 15 Aug 2011 14:21:06 +0000 (16:21 +0200)]
Minor
Behdad Esfahbod [Mon, 15 Aug 2011 14:15:44 +0000 (16:15 +0200)]
[ft] FT_Select_Charmap() when we create face
Behdad Esfahbod [Mon, 15 Aug 2011 07:52:05 +0000 (09:52 +0200)]
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
Behdad Esfahbod [Sun, 14 Aug 2011 13:17:16 +0000 (15:17 +0200)]
Start adding gobject-introspection support
Behdad Esfahbod [Sat, 13 Aug 2011 17:03:48 +0000 (19:03 +0200)]
Fix missing return
Behdad Esfahbod [Sat, 13 Aug 2011 15:16:45 +0000 (17:16 +0200)]
Minor
Behdad Esfahbod [Thu, 11 Aug 2011 09:54:31 +0000 (11:54 +0200)]
Refactor hb-view code
Behdad Esfahbod [Wed, 10 Aug 2011 20:08:36 +0000 (22:08 +0200)]
Add uniscribe font getters
Behdad Esfahbod [Wed, 10 Aug 2011 20:00:35 +0000 (22:00 +0200)]
Implement hb_ft_font_get_face
Behdad Esfahbod [Wed, 10 Aug 2011 19:54:22 +0000 (21:54 +0200)]
Fix charset conversion
Behdad Esfahbod [Wed, 10 Aug 2011 14:28:38 +0000 (16:28 +0200)]
[util] Add hb-shape --shapers
If the specified shapers fail, hb-shape will fail immediately
Behdad Esfahbod [Wed, 10 Aug 2011 14:25:56 +0000 (16:25 +0200)]
Fix const correctness in the API
Behdad Esfahbod [Wed, 10 Aug 2011 14:07:49 +0000 (16:07 +0200)]
Reformat
Behdad Esfahbod [Wed, 10 Aug 2011 13:26:41 +0000 (15:26 +0200)]
[util] Port hb-view to GOption
Behdad Esfahbod [Tue, 9 Aug 2011 13:03:00 +0000 (15:03 +0200)]
Move hb-view into util/
Behdad Esfahbod [Tue, 9 Aug 2011 12:03:12 +0000 (14:03 +0200)]
[uniscribe] Remove zerowidth glyphs from output
Behdad Esfahbod [Tue, 9 Aug 2011 12:00:44 +0000 (14:00 +0200)]
[test/shape-complex] Print cluster and position info in --verbose
Behdad Esfahbod [Tue, 9 Aug 2011 11:52:36 +0000 (13:52 +0200)]
Fix warnings with old glib
Behdad Esfahbod [Tue, 9 Aug 2011 09:44:42 +0000 (11:44 +0200)]
Minor
Behdad Esfahbod [Tue, 9 Aug 2011 09:37:46 +0000 (11:37 +0200)]
Add fallback shaper
Behdad Esfahbod [Tue, 9 Aug 2011 09:36:54 +0000 (11:36 +0200)]
[FT] Don't make font immutable
Behdad Esfahbod [Tue, 9 Aug 2011 08:51:24 +0000 (10:51 +0200)]
[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.
Behdad Esfahbod [Tue, 9 Aug 2011 06:35:07 +0000 (08:35 +0200)]
Minor
Behdad Esfahbod [Mon, 8 Aug 2011 22:47:55 +0000 (00:47 +0200)]
[uniscribe] Unbreak
Behdad Esfahbod [Mon, 8 Aug 2011 22:46:18 +0000 (00:46 +0200)]
Fix build again
Behdad Esfahbod [Mon, 8 Aug 2011 22:43:24 +0000 (00:43 +0200)]
[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.
Behdad Esfahbod [Mon, 8 Aug 2011 22:23:58 +0000 (00:23 +0200)]
[buffer] Make API take signed int length
Since we already switched to accepting -1 as 'zero-terminated'.
Behdad Esfahbod [Mon, 8 Aug 2011 22:19:38 +0000 (00:19 +0200)]
[FT] Adapt to new face API
Behdad Esfahbod [Mon, 8 Aug 2011 22:19:19 +0000 (00:19 +0200)]
Minor
Behdad Esfahbod [Mon, 8 Aug 2011 22:13:24 +0000 (00:13 +0200)]
[uniscribe] Cleanup backend
Behdad Esfahbod [Mon, 8 Aug 2011 21:41:06 +0000 (23:41 +0200)]
Fix build
Behdad Esfahbod [Mon, 8 Aug 2011 21:37:41 +0000 (23:37 +0200)]
[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.
Behdad Esfahbod [Mon, 8 Aug 2011 19:42:02 +0000 (21:42 +0200)]
Rename get_table to reference_table in all API
Behdad Esfahbod [Mon, 8 Aug 2011 19:36:24 +0000 (21:36 +0200)]
Fix shaper ordering logic
Behdad Esfahbod [Mon, 8 Aug 2011 01:49:30 +0000 (03:49 +0200)]
Minor
Behdad Esfahbod [Sun, 7 Aug 2011 07:53:42 +0000 (03:53 -0400)]
[uniscribe] Fix blob lifecycles
Behdad Esfahbod [Sun, 7 Aug 2011 07:43:46 +0000 (03:43 -0400)]
Fix shaper_list manipulation, aaaaaaaaaaaaargh
Behdad Esfahbod [Sun, 7 Aug 2011 05:10:55 +0000 (01:10 -0400)]
[test] test-object is not FreeType-specific, move it to the right place
Behdad Esfahbod [Sun, 7 Aug 2011 05:04:40 +0000 (01:04 -0400)]
[uniscribe] Fix cluster calculation
Behdad Esfahbod [Sun, 7 Aug 2011 04:59:58 +0000 (00:59 -0400)]
Minor
Behdad Esfahbod [Sun, 7 Aug 2011 04:59:38 +0000 (00:59 -0400)]
[uniscribe] Fix shaper
It's kinda working finally!
Behdad Esfahbod [Sun, 7 Aug 2011 04:59:12 +0000 (00:59 -0400)]
[glib] Protect against invalid characters
Behdad Esfahbod [Sun, 7 Aug 2011 04:51:50 +0000 (00:51 -0400)]
[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.
Behdad Esfahbod [Sun, 7 Aug 2011 04:00:27 +0000 (00:00 -0400)]
Fix name-table lookup
Oops!
Behdad Esfahbod [Sun, 7 Aug 2011 02:59:54 +0000 (22:59 -0400)]
[uniscribe] Use font size directly
Behdad Esfahbod [Sun, 7 Aug 2011 02:06:52 +0000 (22:06 -0400)]
[uniscribe] Make font selection work
Not tested yet.
Behdad Esfahbod [Sat, 6 Aug 2011 00:34:50 +0000 (20:34 -0400)]
Start implementing the 'name' table
Behdad Esfahbod [Sat, 6 Aug 2011 00:11:06 +0000 (20:11 -0400)]
Skip tests by returning 77
automake test runner understands this.
Behdad Esfahbod [Sat, 6 Aug 2011 00:09:25 +0000 (20:09 -0400)]
Fix check on OS X sh
Behdad Esfahbod [Fri, 5 Aug 2011 23:48:49 +0000 (19:48 -0400)]
Add hb_shape_list_shapers()
Behdad Esfahbod [Fri, 5 Aug 2011 22:18:21 +0000 (18:18 -0400)]
Minor
Behdad Esfahbod [Fri, 5 Aug 2011 22:02:30 +0000 (18:02 -0400)]
Free all static memory upon exit
Behdad Esfahbod [Fri, 5 Aug 2011 21:54:25 +0000 (17:54 -0400)]
Fix env parsing code
Also changed the separator to comma instead of colon.
Behdad Esfahbod [Fri, 5 Aug 2011 21:22:19 +0000 (17:22 -0400)]
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.
Behdad Esfahbod [Fri, 5 Aug 2011 21:22:19 +0000 (17:22 -0400)]
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.
Behdad Esfahbod [Fri, 5 Aug 2011 02:31:05 +0000 (22:31 -0400)]
[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.
Behdad Esfahbod [Fri, 5 Aug 2011 00:49:16 +0000 (20:49 -0400)]
Make test.cc do something more useful
Hardcoded to the uniscribe backend for now. Will fix soon.
Behdad Esfahbod [Fri, 5 Aug 2011 00:00:53 +0000 (20:00 -0400)]
Remove C++ guards from source files
Where causing issues for people with MSVC.
Behdad Esfahbod [Thu, 4 Aug 2011 23:49:05 +0000 (19:49 -0400)]
Zero map objects
Behdad Esfahbod [Thu, 4 Aug 2011 05:57:40 +0000 (01:57 -0400)]
More build fixes
Behdad Esfahbod [Thu, 4 Aug 2011 05:51:30 +0000 (01:51 -0400)]
More out-of-tree build fixes
Behdad Esfahbod [Thu, 4 Aug 2011 05:42:59 +0000 (01:42 -0400)]
Fix out-of-tree build
Behdad Esfahbod [Thu, 4 Aug 2011 05:38:37 +0000 (01:38 -0400)]
Minor
Behdad Esfahbod [Thu, 4 Aug 2011 05:07:33 +0000 (01:07 -0400)]
Minor
Behdad Esfahbod [Thu, 4 Aug 2011 04:52:20 +0000 (00:52 -0400)]
Fix typo
Behdad Esfahbod [Wed, 3 Aug 2011 23:55:04 +0000 (19:55 -0400)]
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.
Behdad Esfahbod [Wed, 3 Aug 2011 21:39:24 +0000 (17:39 -0400)]
Minor
Behdad Esfahbod [Wed, 3 Aug 2011 21:38:54 +0000 (17:38 -0400)]
Add internal hb_buffer_t::get_scratch_buffer()
Behdad Esfahbod [Wed, 3 Aug 2011 21:38:34 +0000 (17:38 -0400)]
Minor
Behdad Esfahbod [Wed, 3 Aug 2011 21:38:04 +0000 (17:38 -0400)]
[API] Add hb_face_get_blob()
Need to think more about it.
Behdad Esfahbod [Tue, 2 Aug 2011 18:06:51 +0000 (14:06 -0400)]
Fix fallback shaping
Broke it a few commits ago.
Behdad Esfahbod [Tue, 2 Aug 2011 17:59:47 +0000 (13:59 -0400)]
Minor
Behdad Esfahbod [Tue, 2 Aug 2011 17:44:24 +0000 (13:44 -0400)]
Fix build with glib but not freetype
Behdad Esfahbod [Tue, 2 Aug 2011 16:05:49 +0000 (12:05 -0400)]
Minor
Behdad Esfahbod [Tue, 2 Aug 2011 15:40:44 +0000 (11:40 -0400)]
Don't use icu-config when cross-compiling
Behdad Esfahbod [Tue, 2 Aug 2011 15:29:55 +0000 (11:29 -0400)]
Unbreak icu-config results a bit