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
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)
Behdad Esfahbod [Tue, 2 Aug 2011 13:56:30 +0000 (09:56 -0400)]
Add mingw32 support
With these changes, on Ubuntu I can do:
./configure --host=i586-mingw32msvc && make
Behdad Esfahbod [Mon, 1 Aug 2011 20:39:32 +0000 (16:39 -0400)]
Bug 39702 - configure check for ragel
Behdad Esfahbod [Mon, 1 Aug 2011 20:34:16 +0000 (16:34 -0400)]
Use missing script for calling ragel
Behdad Esfahbod [Mon, 1 Aug 2011 20:30:11 +0000 (16:30 -0400)]
[Indic] Disable CJCT-disabling logic
Read comment.
Behdad Esfahbod [Sun, 31 Jul 2011 21:51:50 +0000 (17:51 -0400)]
[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.
Behdad Esfahbod [Sun, 31 Jul 2011 20:00:35 +0000 (16:00 -0400)]
Cosmetic
Behdad Esfahbod [Sun, 31 Jul 2011 19:57:00 +0000 (15:57 -0400)]
[Indic] Fix ZWJ/ZWNJ application
Not quite working just yet. False alarm re 10 failures. It was
crashing. Ouch! Back to 48 failures.
Behdad Esfahbod [Sun, 31 Jul 2011 19:18:57 +0000 (15:18 -0400)]
[Indic] Add Final Reordering rules into comments
Not applied yet.
Behdad Esfahbod [Sun, 31 Jul 2011 19:07:11 +0000 (15:07 -0400)]
[Indic] Handle Reph when determining base consonant
Behdad Esfahbod [Sun, 31 Jul 2011 19:01:28 +0000 (15:01 -0400)]
[Indic] Ra is a consonant too
Behdad Esfahbod [Sun, 31 Jul 2011 18:57:59 +0000 (14:57 -0400)]
[Indic] Fix reph inhibition logic
Behdad Esfahbod [Sun, 31 Jul 2011 17:46:44 +0000 (13:46 -0400)]
[Indic] Support ZWJ/ZWNJ
Brings test-shape-complex failures down from 52 to 10!
I hereby declare harfbuzz-ng supporting Indic!
Behdad Esfahbod [Sun, 31 Jul 2011 15:10:14 +0000 (11:10 -0400)]
[Indic] Suppress reph formation upon joiners
Behdad Esfahbod [Sun, 31 Jul 2011 06:24:51 +0000 (02:24 -0400)]
Un-Ra U+09F1. According to the test suite this is correct.
But I'm not sure... Down from 54 failures to 52.
Behdad Esfahbod [Sun, 31 Jul 2011 01:16:51 +0000 (21:16 -0400)]
Minor
Behdad Esfahbod [Sun, 31 Jul 2011 01:11:53 +0000 (21:11 -0400)]
Cosmetic
Behdad Esfahbod [Sun, 31 Jul 2011 01:08:10 +0000 (21:08 -0400)]
[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!
Behdad Esfahbod [Sun, 31 Jul 2011 00:57:01 +0000 (20:57 -0400)]
[OT] Save chosen script tag
Behdad Esfahbod [Sun, 31 Jul 2011 00:23:55 +0000 (20:23 -0400)]
Minor
Behdad Esfahbod [Sun, 31 Jul 2011 00:21:40 +0000 (20:21 -0400)]
[test] Fix problem with N'ko test direction
Old HarfBuzz test suite always shaped as left-to-right and hence had wrong
0x14db, direction expected glyphstring for N'ko. Doh!
Failures down from 92 to 88.
Behdad Esfahbod [Sun, 31 Jul 2011 00:14:44 +0000 (20:14 -0400)]
[Indic] Handle initial Ra+Halant in scripts that support Reph
Brings test-shape-complex failures down from 104 to 92. Way to go!
Behdad Esfahbod [Sat, 30 Jul 2011 23:15:53 +0000 (19:15 -0400)]
Minor
Behdad Esfahbod [Sat, 30 Jul 2011 23:04:02 +0000 (19:04 -0400)]
[Indic] Categorize Ra in scripts that have Reph
Is the categorization correct? I don't know.
Behdad Esfahbod [Sat, 30 Jul 2011 18:44:30 +0000 (14:44 -0400)]
[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 :).
Behdad Esfahbod [Sat, 30 Jul 2011 15:16:00 +0000 (11:16 -0400)]
Bug 39686 - Add '-no-undefined' to libharfbuzz LDFLAGS
Behdad Esfahbod [Fri, 29 Jul 2011 21:02:48 +0000 (17:02 -0400)]
Minor
Behdad Esfahbod [Fri, 29 Jul 2011 20:37:02 +0000 (16:37 -0400)]
[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.
Behdad Esfahbod [Fri, 29 Jul 2011 20:36:46 +0000 (16:36 -0400)]
Minor
Behdad Esfahbod [Fri, 29 Jul 2011 20:27:31 +0000 (16:27 -0400)]
Minor
Behdad Esfahbod [Thu, 28 Jul 2011 21:06:46 +0000 (17:06 -0400)]
Register buffer vars in Indic shaper
Behdad Esfahbod [Thu, 28 Jul 2011 21:03:43 +0000 (17:03 -0400)]
Oops. This should have gone into the previous commit
Behdad Esfahbod [Thu, 28 Jul 2011 20:48:43 +0000 (16:48 -0400)]
Formalize buffer var allocations
Behdad Esfahbod [Thu, 28 Jul 2011 19:42:18 +0000 (15:42 -0400)]
Move more code around
Buffer var allocation coming into shape
Behdad Esfahbod [Tue, 26 Jul 2011 00:25:44 +0000 (20:25 -0400)]
Streamline debugging infrastructure even more
Behdad Esfahbod [Mon, 25 Jul 2011 21:35:24 +0000 (17:35 -0400)]
Use variadic macros for debugging
Looks *so* much nicer!
Behdad Esfahbod [Mon, 25 Jul 2011 20:47:02 +0000 (16:47 -0400)]
Add sugar syntax for debug messages
Buffer debugging coming soon.
Behdad Esfahbod [Mon, 25 Jul 2011 20:30:32 +0000 (16:30 -0400)]
Minor, fix leak from my previous refactorings
Behdad Esfahbod [Mon, 25 Jul 2011 20:20:16 +0000 (16:20 -0400)]
Add internal API for buffer var allocation
Behdad Esfahbod [Mon, 25 Jul 2011 18:54:08 +0000 (14:54 -0400)]
Start cleaning up buffer var allocation
I've messed up a lot of stuff recently, different parts of the
shaping process are stumbling on eachother's toes because
manually tracking what's in which buffer var is hard. I'm
going to add some internal API to track those such that mistakes
are discovered as soon as they are introduced.
Behdad Esfahbod [Mon, 25 Jul 2011 04:44:50 +0000 (00:44 -0400)]
Move code around
Behdad Esfahbod [Mon, 25 Jul 2011 04:36:58 +0000 (00:36 -0400)]
Shrink space used for ligature ids
This frees 16bits in the glyph_info struct during the ot_layout process.
We can use the freed space in the shapers now.
Behdad Esfahbod [Mon, 25 Jul 2011 04:36:01 +0000 (00:36 -0400)]
Minor
Behdad Esfahbod [Sun, 24 Jul 2011 03:43:54 +0000 (23:43 -0400)]
Keep Unicode props updated as we go so we avoid a scan later
Behdad Esfahbod [Sat, 23 Jul 2011 00:22:49 +0000 (20:22 -0400)]
Implement the Unicode Canonical Composition algorithm
Fallback normalization is complete and working now!
Behdad Esfahbod [Fri, 22 Jul 2011 21:14:46 +0000 (17:14 -0400)]
Handle singleton decompositions
Behdad Esfahbod [Fri, 22 Jul 2011 21:04:20 +0000 (17:04 -0400)]
Implement Unicode Canonical Reordering Algorithm
Behdad Esfahbod [Fri, 22 Jul 2011 20:15:32 +0000 (16:15 -0400)]
Decomposition works now!
Behdad Esfahbod [Fri, 22 Jul 2011 15:28:07 +0000 (11:28 -0400)]
Move buffer methods into the object
Behdad Esfahbod [Fri, 22 Jul 2011 15:07:05 +0000 (11:07 -0400)]
More normalization kick
Behdad Esfahbod [Fri, 22 Jul 2011 00:58:42 +0000 (20:58 -0400)]
Fix decompose() implementations to work with non-starter non-composables
Add tests.
Behdad Esfahbod [Thu, 21 Jul 2011 19:25:01 +0000 (15:25 -0400)]
Document normalization design
Behdad Esfahbod [Thu, 21 Jul 2011 16:23:12 +0000 (12:23 -0400)]
Add prefer_decomposed() complex-shaper callback
This allows the Indic shaper to request decomposed characters. This will
handle split matra for free. Other shapers prefer precomposed
characters.
Behdad Esfahbod [Thu, 21 Jul 2011 16:16:45 +0000 (12:16 -0400)]
More kicking
Behdad Esfahbod [Thu, 21 Jul 2011 16:13:04 +0000 (12:13 -0400)]
Remove intermittent_glyph()
Lets not worry about performance for now...
Behdad Esfahbod [Thu, 21 Jul 2011 15:48:57 +0000 (11:48 -0400)]
No need to handle variation-selectors seperately, they are GC=Mn
Behdad Esfahbod [Thu, 21 Jul 2011 15:34:59 +0000 (11:34 -0400)]
Only form clusters if we are reversing
This produces more accurate cluster mappings. Cluster mappings are
minimal now. Combining marks get their own cluster value most of
the time.
Behdad Esfahbod [Thu, 21 Jul 2011 15:31:08 +0000 (11:31 -0400)]
Towards normalization
Behdad Esfahbod [Thu, 21 Jul 2011 14:17:22 +0000 (10:17 -0400)]
s/COMBINING_MARK/SPACING_MARK/ here too. Oops!
Behdad Esfahbod [Thu, 21 Jul 2011 05:12:26 +0000 (01:12 -0400)]
Remove stale comment
Behdad Esfahbod [Thu, 21 Jul 2011 05:11:09 +0000 (01:11 -0400)]
Form clusters before ensuring native direciton
This is essential as ensure_native_direction uses cluster info that
is set by form_clusters().
Behdad Esfahbod [Thu, 21 Jul 2011 04:58:29 +0000 (00:58 -0400)]
Add _hb_buffer_output_glyph() and _hb_buffer_skip_glyph()
Behdad Esfahbod [Thu, 21 Jul 2011 04:51:18 +0000 (00:51 -0400)]
Towards normalization
Behdad Esfahbod [Thu, 21 Jul 2011 04:35:37 +0000 (00:35 -0400)]
Include variation-selectors in cluster calculation
Behdad Esfahbod [Thu, 21 Jul 2011 04:28:57 +0000 (00:28 -0400)]
Fix cluster calculation for non-LTR text
Behdad Esfahbod [Thu, 21 Jul 2011 04:14:01 +0000 (00:14 -0400)]
When forming clusters, participate all mark types
Behdad Esfahbod [Thu, 21 Jul 2011 04:12:33 +0000 (00:12 -0400)]
Rename HB_UNICODE_GENERAL_CATEGORY_COMBINING_MARK to HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK
Spacing_Mark is the current Unicode long-name for this property value.
The previous name was wrongly carried from glib.
Behdad Esfahbod [Thu, 21 Jul 2011 03:59:07 +0000 (23:59 -0400)]
Minor