Behdad Esfahbod [Thu, 8 Sep 2011 20:49:02 +0000 (16:49 -0400)]
[util] Move code around
Behdad Esfahbod [Thu, 8 Sep 2011 20:43:15 +0000 (16:43 -0400)]
Minor
We now support using -1 for NUL-terminated strings.
Behdad Esfahbod [Thu, 8 Sep 2011 20:42:37 +0000 (16:42 -0400)]
[util] Move code around
Behdad Esfahbod [Thu, 8 Sep 2011 20:00:04 +0000 (16:00 -0400)]
[util] Further refactor option parsing
Behdad Esfahbod [Thu, 8 Sep 2011 17:35:17 +0000 (13:35 -0400)]
Refine Indic scripts, following Martin Hosken's recommendation
Behdad Esfahbod [Fri, 2 Sep 2011 17:31:19 +0000 (13:31 -0400)]
Pass through unknown ISO 639-3 language tags to OpenType engine
In hb_ot_tag_from_language(), if first component of an unknown
language is three letters long, use it directly as OpenType language
tag (after case conversion and padding).
Behdad Esfahbod [Fri, 2 Sep 2011 16:39:20 +0000 (12:39 -0400)]
[graphite] Don't preload glyphs
Doesn't seem to be slower.
Behdad Esfahbod [Fri, 26 Aug 2011 11:39:49 +0000 (13:39 +0200)]
Minor
Behdad Esfahbod [Fri, 26 Aug 2011 07:40:54 +0000 (09:40 +0200)]
[graphite2] Chop a few more lines
Behdad Esfahbod [Fri, 26 Aug 2011 07:33:06 +0000 (09:33 +0200)]
Minor
Behdad Esfahbod [Fri, 26 Aug 2011 07:30:49 +0000 (09:30 +0200)]
[graphite] Use buffer->replace_glyphs()
Behdad Esfahbod [Fri, 26 Aug 2011 07:29:42 +0000 (09:29 +0200)]
Add buffer->replace_glyphs()
Behdad Esfahbod [Fri, 26 Aug 2011 07:27:13 +0000 (09:27 +0200)]
Minor
Behdad Esfahbod [Fri, 26 Aug 2011 07:25:04 +0000 (09:25 +0200)]
[graphite] Only pass the first part language tag to graphite
Still not sure about:
1) Case. We pass lowercase for now. Would be nice if graphite was
uppercase 3letter like OpenType,
2) Padding. IMO, tag padding is always with spaces, but Martin was
talking about NUL bytes.
Behdad Esfahbod [Fri, 26 Aug 2011 07:18:53 +0000 (09:18 +0200)]
[API] Make all _from_string() functions take a len parameter
Can be -1 for NUL-terminated string. This is useful for passing parts
of a larger string to a function without having to copy or modify the
string first.
Affected functions:
hb_tag_t hb_tag_from_string()
hb_direction_from_string()
hb_language_from_string()
hb_script_from_string()
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