platform/upstream/libHarfBuzzSharp.git
12 years agoReorder combining-class to better suit Arabic shadda mark-mark positioning
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

12 years agoFix make distcheck
Behdad Esfahbod [Wed, 24 Aug 2011 17:16:13 +0000 (19:16 +0200)]
Fix make distcheck

12 years agoAdd hb-ot-hmtx-table.hh
Behdad Esfahbod [Wed, 24 Aug 2011 17:13:15 +0000 (19:13 +0200)]
Add hb-ot-hmtx-table.hh

Oops!

12 years ago[graphite] Rewrite properly
Behdad Esfahbod [Wed, 24 Aug 2011 01:22:49 +0000 (03:22 +0200)]
[graphite] Rewrite properly

12 years agoMinor
Behdad Esfahbod [Wed, 24 Aug 2011 00:24:27 +0000 (02:24 +0200)]
Minor

12 years ago[configure] Fix graphite bits
Behdad Esfahbod [Wed, 24 Aug 2011 00:12:05 +0000 (02:12 +0200)]
[configure] Fix graphite bits

12 years ago[uniscribe] Minor
Behdad Esfahbod [Wed, 24 Aug 2011 00:09:04 +0000 (02:09 +0200)]
[uniscribe] Minor

12 years ago[graphite] Minor
Behdad Esfahbod [Tue, 23 Aug 2011 23:47:25 +0000 (01:47 +0200)]
[graphite] Minor

12 years ago[graphite] Remove hb_graphite2_feature_check()
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.

12 years agoAdd graphite2 integration from Martin Hosken
Behdad Esfahbod [Tue, 23 Aug 2011 23:29:25 +0000 (01:29 +0200)]
Add graphite2 integration from Martin Hosken

To be modified, a lot.

12 years agoMinor
Behdad Esfahbod [Tue, 23 Aug 2011 23:31:29 +0000 (01:31 +0200)]
Minor

12 years agoAdd a constructor for hb_prealloced_array_t
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.

12 years agoAdd gobject enum support, but disabled for now
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.

12 years agoFlesh out tt funcs a bit
Behdad Esfahbod [Wed, 17 Aug 2011 21:55:29 +0000 (23:55 +0200)]
Flesh out tt funcs a bit

12 years ago[API] Add hb_font_set_funcs_data()
Behdad Esfahbod [Wed, 17 Aug 2011 17:21:44 +0000 (19:21 +0200)]
[API] Add hb_font_set_funcs_data()

12 years agoRemove the pre_allocate argument from hb_buffer_create()
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.

12 years agoDo (nothing for) hmtx sanitize
Behdad Esfahbod [Wed, 17 Aug 2011 17:03:06 +0000 (19:03 +0200)]
Do (nothing for) hmtx sanitize

12 years agoFix name-table sanitize
Behdad Esfahbod [Wed, 17 Aug 2011 12:47:41 +0000 (14:47 +0200)]
Fix name-table sanitize

12 years agoAdd hhea-table support
Behdad Esfahbod [Wed, 17 Aug 2011 12:43:45 +0000 (14:43 +0200)]
Add hhea-table support

12 years agoRename table files from eg maxp-private.hh to maxp-table.hh
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

12 years ago[ft] FT_Get_Advance() for advance-width callbacks
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.

12 years agoFix falloffs of the GOption conversion
Behdad Esfahbod [Mon, 15 Aug 2011 17:03:43 +0000 (19:03 +0200)]
Fix falloffs of the GOption conversion

12 years agoPre-allocate buffers when adding string
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.

12 years agoMinor
Behdad Esfahbod [Mon, 15 Aug 2011 14:21:06 +0000 (16:21 +0200)]
Minor

12 years ago[ft] FT_Select_Charmap() when we create face
Behdad Esfahbod [Mon, 15 Aug 2011 14:15:44 +0000 (16:15 +0200)]
[ft] FT_Select_Charmap() when we create face

12 years agoApply 'locl' with 'ccmp' in Arabic shaper
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

12 years agoStart adding gobject-introspection support
Behdad Esfahbod [Sun, 14 Aug 2011 13:17:16 +0000 (15:17 +0200)]
Start adding gobject-introspection support

12 years agoFix missing return
Behdad Esfahbod [Sat, 13 Aug 2011 17:03:48 +0000 (19:03 +0200)]
Fix missing return

12 years agoMinor
Behdad Esfahbod [Sat, 13 Aug 2011 15:16:45 +0000 (17:16 +0200)]
Minor

12 years agoRefactor hb-view code
Behdad Esfahbod [Thu, 11 Aug 2011 09:54:31 +0000 (11:54 +0200)]
Refactor hb-view code

12 years agoAdd uniscribe font getters
Behdad Esfahbod [Wed, 10 Aug 2011 20:08:36 +0000 (22:08 +0200)]
Add uniscribe font getters

12 years agoImplement hb_ft_font_get_face
Behdad Esfahbod [Wed, 10 Aug 2011 20:00:35 +0000 (22:00 +0200)]
Implement hb_ft_font_get_face

12 years agoFix charset conversion
Behdad Esfahbod [Wed, 10 Aug 2011 19:54:22 +0000 (21:54 +0200)]
Fix charset conversion

12 years ago[util] Add hb-shape --shapers
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

12 years agoFix const correctness in the API
Behdad Esfahbod [Wed, 10 Aug 2011 14:25:56 +0000 (16:25 +0200)]
Fix const correctness in the API

12 years agoReformat
Behdad Esfahbod [Wed, 10 Aug 2011 14:07:49 +0000 (16:07 +0200)]
Reformat

12 years ago[util] Port hb-view to GOption
Behdad Esfahbod [Wed, 10 Aug 2011 13:26:41 +0000 (15:26 +0200)]
[util] Port hb-view to GOption

12 years agoMove hb-view into util/
Behdad Esfahbod [Tue, 9 Aug 2011 13:03:00 +0000 (15:03 +0200)]
Move hb-view into util/

12 years ago[uniscribe] Remove zerowidth glyphs from output
Behdad Esfahbod [Tue, 9 Aug 2011 12:03:12 +0000 (14:03 +0200)]
[uniscribe] Remove zerowidth glyphs from output

12 years ago[test/shape-complex] Print cluster and position info in --verbose
Behdad Esfahbod [Tue, 9 Aug 2011 12:00:44 +0000 (14:00 +0200)]
[test/shape-complex] Print cluster and position info in --verbose

12 years agoFix warnings with old glib
Behdad Esfahbod [Tue, 9 Aug 2011 11:52:36 +0000 (13:52 +0200)]
Fix warnings with old glib

12 years agoMinor
Behdad Esfahbod [Tue, 9 Aug 2011 09:44:42 +0000 (11:44 +0200)]
Minor

12 years agoAdd fallback shaper
Behdad Esfahbod [Tue, 9 Aug 2011 09:37:46 +0000 (11:37 +0200)]
Add fallback shaper

12 years ago[FT] Don't make font immutable
Behdad Esfahbod [Tue, 9 Aug 2011 09:36:54 +0000 (11:36 +0200)]
[FT] Don't make font immutable

12 years ago[API] Add hb_ft_font_set_funcs(), remove hb_ft_get_font_funcs()
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.

12 years agoMinor
Behdad Esfahbod [Tue, 9 Aug 2011 06:35:07 +0000 (08:35 +0200)]
Minor

12 years ago[uniscribe] Unbreak
Behdad Esfahbod [Mon, 8 Aug 2011 22:47:55 +0000 (00:47 +0200)]
[uniscribe] Unbreak

12 years agoFix build again
Behdad Esfahbod [Mon, 8 Aug 2011 22:46:18 +0000 (00:46 +0200)]
Fix build again

12 years ago[API] Make set_user_data() functions take a replace parameter
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.

12 years ago[buffer] Make API take signed int length
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'.

12 years ago[FT] Adapt to new face API
Behdad Esfahbod [Mon, 8 Aug 2011 22:19:38 +0000 (00:19 +0200)]
[FT] Adapt to new face API

12 years agoMinor
Behdad Esfahbod [Mon, 8 Aug 2011 22:19:19 +0000 (00:19 +0200)]
Minor

12 years ago[uniscribe] Cleanup backend
Behdad Esfahbod [Mon, 8 Aug 2011 22:13:24 +0000 (00:13 +0200)]
[uniscribe] Cleanup backend

12 years agoFix build
Behdad Esfahbod [Mon, 8 Aug 2011 21:41:06 +0000 (23:41 +0200)]
Fix build

12 years ago[API] Sort out get_blob API
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.

12 years agoRename get_table to reference_table in all API
Behdad Esfahbod [Mon, 8 Aug 2011 19:42:02 +0000 (21:42 +0200)]
Rename get_table to reference_table in all API

12 years agoFix shaper ordering logic
Behdad Esfahbod [Mon, 8 Aug 2011 19:36:24 +0000 (21:36 +0200)]
Fix shaper ordering logic

12 years agoMinor
Behdad Esfahbod [Mon, 8 Aug 2011 01:49:30 +0000 (03:49 +0200)]
Minor

12 years ago[uniscribe] Fix blob lifecycles
Behdad Esfahbod [Sun, 7 Aug 2011 07:53:42 +0000 (03:53 -0400)]
[uniscribe] Fix blob lifecycles

12 years agoFix shaper_list manipulation, aaaaaaaaaaaaargh
Behdad Esfahbod [Sun, 7 Aug 2011 07:43:46 +0000 (03:43 -0400)]
Fix shaper_list manipulation, aaaaaaaaaaaaargh

12 years ago[test] test-object is not FreeType-specific, move it to the right place
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

12 years ago[uniscribe] Fix cluster calculation
Behdad Esfahbod [Sun, 7 Aug 2011 05:04:40 +0000 (01:04 -0400)]
[uniscribe] Fix cluster calculation

12 years agoMinor
Behdad Esfahbod [Sun, 7 Aug 2011 04:59:58 +0000 (00:59 -0400)]
Minor

12 years ago[uniscribe] Fix shaper
Behdad Esfahbod [Sun, 7 Aug 2011 04:59:38 +0000 (00:59 -0400)]
[uniscribe] Fix shaper

It's kinda working finally!

12 years ago[glib] Protect against invalid characters
Behdad Esfahbod [Sun, 7 Aug 2011 04:59:12 +0000 (00:59 -0400)]
[glib] Protect against invalid characters

12 years ago[buffer] Accept -1 for text_length and item_length
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.

12 years agoFix name-table lookup
Behdad Esfahbod [Sun, 7 Aug 2011 04:00:27 +0000 (00:00 -0400)]
Fix name-table lookup

Oops!

12 years ago[uniscribe] Use font size directly
Behdad Esfahbod [Sun, 7 Aug 2011 02:59:54 +0000 (22:59 -0400)]
[uniscribe] Use font size directly

12 years ago[uniscribe] Make font selection work
Behdad Esfahbod [Sun, 7 Aug 2011 02:06:52 +0000 (22:06 -0400)]
[uniscribe] Make font selection work

Not tested yet.

12 years agoStart implementing the 'name' table
Behdad Esfahbod [Sat, 6 Aug 2011 00:34:50 +0000 (20:34 -0400)]
Start implementing the 'name' table

12 years agoSkip tests by returning 77
Behdad Esfahbod [Sat, 6 Aug 2011 00:11:06 +0000 (20:11 -0400)]
Skip tests by returning 77

automake test runner understands this.

12 years agoFix check on OS X sh
Behdad Esfahbod [Sat, 6 Aug 2011 00:09:25 +0000 (20:09 -0400)]
Fix check on OS X sh

12 years agoAdd hb_shape_list_shapers()
Behdad Esfahbod [Fri, 5 Aug 2011 23:48:49 +0000 (19:48 -0400)]
Add hb_shape_list_shapers()

12 years agoMinor
Behdad Esfahbod [Fri, 5 Aug 2011 22:18:21 +0000 (18:18 -0400)]
Minor

12 years agoFree all static memory upon exit
Behdad Esfahbod [Fri, 5 Aug 2011 22:02:30 +0000 (18:02 -0400)]
Free all static memory upon exit

12 years agoFix env parsing code
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.

12 years agoChange hb_shape() API back to what it was, add hb_shape_full()
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.

12 years agoChange hb_shape() API back to what it was, add hb_shape_full()
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.

12 years ago[API] Changes to main shape API
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.

12 years agoMake test.cc do something more useful
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.

12 years agoRemove C++ guards from source files
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.

12 years agoZero map objects
Behdad Esfahbod [Thu, 4 Aug 2011 23:49:05 +0000 (19:49 -0400)]
Zero map objects

12 years agoMore build fixes
Behdad Esfahbod [Thu, 4 Aug 2011 05:57:40 +0000 (01:57 -0400)]
More build fixes

12 years agoMore out-of-tree build fixes
Behdad Esfahbod [Thu, 4 Aug 2011 05:51:30 +0000 (01:51 -0400)]
More out-of-tree build fixes

12 years agoFix out-of-tree build
Behdad Esfahbod [Thu, 4 Aug 2011 05:42:59 +0000 (01:42 -0400)]
Fix out-of-tree build

12 years agoMinor
Behdad Esfahbod [Thu, 4 Aug 2011 05:38:37 +0000 (01:38 -0400)]
Minor

12 years agoMinor
Behdad Esfahbod [Thu, 4 Aug 2011 05:07:33 +0000 (01:07 -0400)]
Minor

12 years agoFix typo
Behdad Esfahbod [Thu, 4 Aug 2011 04:52:20 +0000 (00:52 -0400)]
Fix typo

12 years agoAdd draft experimental Uniscribe backend
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.

12 years agoMinor
Behdad Esfahbod [Wed, 3 Aug 2011 21:39:24 +0000 (17:39 -0400)]
Minor

12 years agoAdd internal hb_buffer_t::get_scratch_buffer()
Behdad Esfahbod [Wed, 3 Aug 2011 21:38:54 +0000 (17:38 -0400)]
Add internal hb_buffer_t::get_scratch_buffer()

12 years agoMinor
Behdad Esfahbod [Wed, 3 Aug 2011 21:38:34 +0000 (17:38 -0400)]
Minor

12 years ago[API] Add hb_face_get_blob()
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.

12 years agoFix fallback shaping
Behdad Esfahbod [Tue, 2 Aug 2011 18:06:51 +0000 (14:06 -0400)]
Fix fallback shaping

Broke it a few commits ago.

12 years agoMinor
Behdad Esfahbod [Tue, 2 Aug 2011 17:59:47 +0000 (13:59 -0400)]
Minor

12 years agoFix build with glib but not freetype
Behdad Esfahbod [Tue, 2 Aug 2011 17:44:24 +0000 (13:44 -0400)]
Fix build with glib but not freetype

12 years agoMinor
Behdad Esfahbod [Tue, 2 Aug 2011 16:05:49 +0000 (12:05 -0400)]
Minor

12 years agoDon't use icu-config when cross-compiling
Behdad Esfahbod [Tue, 2 Aug 2011 15:40:44 +0000 (11:40 -0400)]
Don't use icu-config when cross-compiling

12 years agoUnbreak icu-config results a bit
Behdad Esfahbod [Tue, 2 Aug 2011 15:29:55 +0000 (11:29 -0400)]
Unbreak icu-config results a bit

12 years agoBug 39763 - autogen.sh should check pkg-config availability
Behdad Esfahbod [Tue, 2 Aug 2011 15:25:13 +0000 (11:25 -0400)]
Bug 39763 - autogen.sh should check pkg-config availability

(and revert change have_icu change I mistakenly pushed out)