Behdad Esfahbod [Tue, 17 Jul 2012 14:40:59 +0000 (10:40 -0400)]
[Indic] Apply presentation-forms features all at once
Seems like this is what Uniscribe is doing, and does not break any fonts
we tested (with Devanagari, Malayalam, Khmer, and Bengali), while fixing
some Ra Phala sequences for Bengali with Vrinda. Fixes another 2% of
Bengali failures (a couple more to go).
Behdad Esfahbod [Tue, 17 Jul 2012 02:43:17 +0000 (22:43 -0400)]
Fix MarkAttachmentType matching
Fixes issue reported by Khaled Hosny with his Hussaini Nastaleeq font
and sequences like those added in the previous commit.
Behdad Esfahbod [Tue, 17 Jul 2012 02:46:06 +0000 (22:46 -0400)]
[test/arabic] Add Arabic tests for mark skipping
Expose a bug with Khaled's Hussaini Nastaleeq font.
Behdad Esfahbod [Tue, 17 Jul 2012 02:40:21 +0000 (22:40 -0400)]
Minor
Behdad Esfahbod [Tue, 17 Jul 2012 00:31:24 +0000 (20:31 -0400)]
[Indic] Disable 'kern' in Uniscribe bug compatibility mode
Uniscribe does not apply 'kern' in the Indic module. Some of the Khmer
fonts they ship have small adjustments in the 'kern' table. Disable
'kern' in the Indic module under Uniscribe bug compatibility mode.
Fixes some 10% of the Khmer failures. Remains under 3% (excluding
dotted-circle ones).
Behdad Esfahbod [Tue, 17 Jul 2012 00:26:57 +0000 (20:26 -0400)]
Allow complex shapers overriding common features
In a new callback... Currently unused by all complex shapers.
Behdad Esfahbod [Mon, 16 Jul 2012 23:56:29 +0000 (19:56 -0400)]
[Indic] Categorize other Khmer marks
Mark them the same as the Register Shifters for now. Need to rename
that category to something more sensible after all is settled.
Fixes another percent of Khmer failures. Down to under 3%!
Behdad Esfahbod [Mon, 16 Jul 2012 21:04:46 +0000 (17:04 -0400)]
[Indic] Recognize pre-base reordering Ra anywhere in the syllable
We were doing that only immediately after base.
Fixes another percent in the Khmer failures. About three more to go...
Behdad Esfahbod [Mon, 16 Jul 2012 20:45:22 +0000 (16:45 -0400)]
[Indic] Recognizer Register Shifter marks
Fixes another 6% of the Khmer failures.
Behdad Esfahbod [Mon, 16 Jul 2012 20:13:32 +0000 (16:13 -0400)]
[GSUB/GDEF] Guess glyph classes after substitution only if no GDEF
Brings down Khmer failures with Daun Penh font from 36% to 20%.
Behdad Esfahbod [Mon, 16 Jul 2012 19:52:54 +0000 (15:52 -0400)]
[Indic] Categorize Khmer Ro
Khmer failures down from 58% to 36%.
Behdad Esfahbod [Mon, 16 Jul 2012 19:49:08 +0000 (15:49 -0400)]
[Indic] Reoder pre-base reordering Ra
Brings down Malayalam failures from 14% down to 3%.
Behdad Esfahbod [Mon, 16 Jul 2012 19:40:33 +0000 (15:40 -0400)]
[Indic] Rename
Behdad Esfahbod [Mon, 16 Jul 2012 19:30:05 +0000 (15:30 -0400)]
[Indic] Start implementing pre-base reordering
Behdad Esfahbod [Mon, 16 Jul 2012 19:26:56 +0000 (15:26 -0400)]
[Indic] Rename
No semantic change.
Behdad Esfahbod [Mon, 16 Jul 2012 19:21:12 +0000 (15:21 -0400)]
[Indic] Implement After-Main Reph positioning
Almost...
Behdad Esfahbod [Mon, 16 Jul 2012 19:20:15 +0000 (15:20 -0400)]
[Indic] Apply 'pref' to pre-base reodering Ra
No reordering yet.
Behdad Esfahbod [Mon, 16 Jul 2012 19:15:28 +0000 (15:15 -0400)]
[Indic] Minor
Should not be any semantic change. In preparation for implementing
pre-base reordering Ra.
Behdad Esfahbod [Mon, 16 Jul 2012 18:52:18 +0000 (14:52 -0400)]
Minor
Behdad Esfahbod [Mon, 16 Jul 2012 17:54:43 +0000 (13:54 -0400)]
Minor
Behdad Esfahbod [Mon, 16 Jul 2012 17:47:19 +0000 (13:47 -0400)]
[Indic] Reorder virama only for old Indic spec
Behdad Esfahbod [Mon, 16 Jul 2012 17:39:36 +0000 (13:39 -0400)]
[Indic] Categorize Khmer consonants
Behdad Esfahbod [Mon, 16 Jul 2012 17:25:17 +0000 (13:25 -0400)]
Split matras without a Unicode decomposition
This is a hack for now, to get us going with Khmer. This will be
refactored properly later to move the complex logic into complex
shapers.
Behdad Esfahbod [Mon, 16 Jul 2012 17:24:26 +0000 (13:24 -0400)]
[Indic] Adjust position for split matras
We are going to split matras without a Unicode decompositions in a way
that the second half takes the codepoint of the whole matra. So,
position them where the second half is supposed to end up.
Behdad Esfahbod [Mon, 16 Jul 2012 17:23:40 +0000 (13:23 -0400)]
[GSUB] Allow 1-to-1 ligature substitutions!
Apparently Uniscribe allows these, and they are used in some Khmer fonts
shipped with Windows, namely, Daun Penh.
Behdad Esfahbod [Mon, 16 Jul 2012 16:05:35 +0000 (12:05 -0400)]
[Indic] Apply Above Forms
Behdad Esfahbod [Sat, 14 Jul 2012 16:15:54 +0000 (12:15 -0400)]
Further simplify atomic ops on Visual Studio
Behdad Esfahbod [Fri, 13 Jul 2012 17:20:49 +0000 (13:20 -0400)]
Minor
Behdad Esfahbod [Fri, 13 Jul 2012 15:29:31 +0000 (11:29 -0400)]
Add -Wcast-align
Behdad Esfahbod [Fri, 13 Jul 2012 14:19:10 +0000 (10:19 -0400)]
Make sure HB_BEGIN_DECLS / HB_END_DECLS is only used in public headers
So we can use them to switch default visibility to internal if desired,
and use these to make only declared symbols public.
Behdad Esfahbod [Fri, 13 Jul 2012 14:15:37 +0000 (10:15 -0400)]
Allow overriding HB_BEGIN_DECLS / HB_END_DECLS
Behdad Esfahbod [Fri, 13 Jul 2012 14:00:42 +0000 (10:00 -0400)]
Don't export inline methods
Behdad Esfahbod [Fri, 13 Jul 2012 13:48:39 +0000 (09:48 -0400)]
Check for exported weak symbols
Ouch, all our C++ inline functions are being exported (weakly) already.
Fix coming.
Behdad Esfahbod [Fri, 13 Jul 2012 13:45:54 +0000 (09:45 -0400)]
Make hb_in_range() static
Behdad Esfahbod [Fri, 13 Jul 2012 13:32:30 +0000 (09:32 -0400)]
Minor
Behdad Esfahbod [Fri, 13 Jul 2012 13:04:07 +0000 (09:04 -0400)]
Fix _InterlockedCompareExchangePointer on x86
Behdad Esfahbod [Wed, 11 Jul 2012 23:00:30 +0000 (19:00 -0400)]
[ft] Disable ppem setting
The calculations were wrong.
FreeType makes it really hard to set size and ppem independently.
For now, disable it. Need to come up with a fix later.
Behdad Esfahbod [Wed, 11 Jul 2012 22:52:39 +0000 (18:52 -0400)]
[ft] Use unfitted kerning if x_ppem is zero
Behdad Esfahbod [Wed, 11 Jul 2012 22:01:27 +0000 (18:01 -0400)]
Revert "Towards templatizing common Lookup types"
This reverts commit
727135f3a9938c1ebd5b9f5015a46c7ccc8573c5.
This is work-in-progress. Didn't mean to push it out just yet.
Behdad Esfahbod [Wed, 11 Jul 2012 20:44:51 +0000 (16:44 -0400)]
Bump WINNT version requested from 500 to 600
Since we use the OpenType versions of Uniscribe functions, we are
relying on that version of the WINNT API. Otherwise, usp10.h will hide
those symbols.
Behdad Esfahbod [Wed, 11 Jul 2012 20:35:04 +0000 (16:35 -0400)]
Fix build with no Unicode funcs implementations provided
Behdad Esfahbod [Wed, 11 Jul 2012 19:30:08 +0000 (15:30 -0400)]
Update git.mk to upstream
Behdad Esfahbod [Wed, 4 Jul 2012 02:15:35 +0000 (22:15 -0400)]
Towards templatizing common Lookup types
Behdad Esfahbod [Tue, 3 Jul 2012 15:38:46 +0000 (11:38 -0400)]
Minor
Behdad Esfahbod [Fri, 29 Jun 2012 14:50:12 +0000 (10:50 -0400)]
Minor
Behdad Esfahbod [Wed, 27 Jun 2012 14:07:27 +0000 (10:07 -0400)]
Add TODO item
Behdad Esfahbod [Tue, 26 Jun 2012 15:16:13 +0000 (11:16 -0400)]
Fix check for Intel atomic ops
Behdad Esfahbod [Tue, 26 Jun 2012 14:46:31 +0000 (10:46 -0400)]
Use octal-escaped UTF-8 characters instead of plain text
https://bugs.freedesktop.org/show_bug.cgi?id=50970
Behdad Esfahbod [Sun, 24 Jun 2012 17:20:56 +0000 (13:20 -0400)]
Disable introspection again
Until I figure out the build issues. Sigh...
Behdad Esfahbod [Sun, 17 Jun 2012 18:58:59 +0000 (14:58 -0400)]
Minor
Behdad Esfahbod [Sat, 16 Jun 2012 19:40:03 +0000 (15:40 -0400)]
GStaticMutex is deprecated
Behdad Esfahbod [Sat, 16 Jun 2012 19:26:13 +0000 (15:26 -0400)]
g_thread_init() is deprecated
Behdad Esfahbod [Sat, 16 Jun 2012 19:21:55 +0000 (15:21 -0400)]
Make source more digestable for gobject-introspection
Behdad Esfahbod [Sat, 16 Jun 2012 19:21:41 +0000 (15:21 -0400)]
Flesh out gobject-introspection stuff a bit
Behdad Esfahbod [Sat, 16 Jun 2012 18:53:51 +0000 (14:53 -0400)]
Add TODO item
Behdad Esfahbod [Tue, 12 Jun 2012 13:52:57 +0000 (09:52 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 18:58:01 +0000 (14:58 -0400)]
Add hb_object_lock/unlock()
Behdad Esfahbod [Sat, 9 Jun 2012 07:26:16 +0000 (03:26 -0400)]
Ugh
Behdad Esfahbod [Sat, 9 Jun 2012 07:11:22 +0000 (03:11 -0400)]
More Oops! Fix fast-path with sub-type==0
Behdad Esfahbod [Sat, 9 Jun 2012 07:07:59 +0000 (03:07 -0400)]
Oops!
Behdad Esfahbod [Sat, 9 Jun 2012 07:05:20 +0000 (03:05 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 07:02:36 +0000 (03:02 -0400)]
Add sanitize() logic for fast-paths
Behdad Esfahbod [Sat, 9 Jun 2012 06:53:57 +0000 (02:53 -0400)]
Add fast-path for GPOS too
Shaves another 3% for DejaVu Sans long Latin strings.
Behdad Esfahbod [Sat, 9 Jun 2012 06:48:16 +0000 (02:48 -0400)]
Add fast-path to GSUB to check coverage
Shaves a good 10% off DejaVu Sans with simple Latin text for me.
Now, DejaVu is very ChainContext-intensive, but it's also a very
popular font!
Behdad Esfahbod [Sat, 9 Jun 2012 06:26:57 +0000 (02:26 -0400)]
Match input before backtrack
Makes more sense, optimization-wise.
Behdad Esfahbod [Sat, 9 Jun 2012 06:02:46 +0000 (02:02 -0400)]
Add set add_coverage() to Coverage()
Behdad Esfahbod [Sat, 9 Jun 2012 05:39:11 +0000 (01:39 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 05:21:02 +0000 (01:21 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 05:18:58 +0000 (01:18 -0400)]
Fix cache implementation
Behdad Esfahbod [Sat, 9 Jun 2012 05:10:26 +0000 (01:10 -0400)]
Micro-optimize
I know...
Behdad Esfahbod [Sat, 9 Jun 2012 04:56:41 +0000 (00:56 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 04:50:40 +0000 (00:50 -0400)]
Use linear search for small counts
I see about 8% speedup with long strings with DejaVu Sans.
Behdad Esfahbod [Sat, 9 Jun 2012 04:26:32 +0000 (00:26 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 04:24:38 +0000 (00:24 -0400)]
Minor. Hide _hb_ot_layout_get_glyph_property()
Behdad Esfahbod [Sat, 9 Jun 2012 04:23:24 +0000 (00:23 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 02:04:23 +0000 (22:04 -0400)]
In MarkBase attachment, only attach to first of a MultipleSubst sequence
This is apparently what Uniscribe does. Test case is:
SEEN FATHA TEH ALEF
with Arabic Typesetting. Originally reported by Khaled Hosny.
Behdad Esfahbod [Sat, 9 Jun 2012 01:47:23 +0000 (21:47 -0400)]
Set lig_comp for MultipleSubst components
To be used for correct mark attachment to first component of a
MultipleSubst output. That's what Uniscribe does.
Behdad Esfahbod [Sat, 9 Jun 2012 01:45:00 +0000 (21:45 -0400)]
Remove unused buffer->replace_glyphs_be16
Behdad Esfahbod [Sat, 9 Jun 2012 01:44:06 +0000 (21:44 -0400)]
Don't use replace_glyphs_be for MultipleSubst
Behdad Esfahbod [Sat, 9 Jun 2012 01:41:46 +0000 (21:41 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 01:32:43 +0000 (21:32 -0400)]
Add test for static initializers and other C++ stuff
Behdad Esfahbod [Sat, 9 Jun 2012 01:29:18 +0000 (21:29 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 01:01:45 +0000 (21:01 -0400)]
Remove done TODO items
Behdad Esfahbod [Sat, 9 Jun 2012 01:01:20 +0000 (21:01 -0400)]
Merge clusters during normalization
Behdad Esfahbod [Sat, 9 Jun 2012 00:56:05 +0000 (20:56 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 00:55:21 +0000 (20:55 -0400)]
Use merge_clusters instead of open-coding
Behdad Esfahbod [Sat, 9 Jun 2012 00:40:02 +0000 (20:40 -0400)]
Use merge_clusters when forming Unicode clusters
Behdad Esfahbod [Sat, 9 Jun 2012 00:35:18 +0000 (20:35 -0400)]
Minor
Behdad Esfahbod [Sat, 9 Jun 2012 00:33:27 +0000 (20:33 -0400)]
Extend into main buffer if extension hit end of out-buffer merging clusters
Behdad Esfahbod [Sat, 9 Jun 2012 00:31:32 +0000 (20:31 -0400)]
Extend end when merging clusters in out-buffer
Behdad Esfahbod [Sat, 9 Jun 2012 00:30:03 +0000 (20:30 -0400)]
Extend clusters backward in out-buffer
Behdad Esfahbod [Sat, 9 Jun 2012 00:27:53 +0000 (20:27 -0400)]
Extend clusters backwards, into the out-buffer too
Behdad Esfahbod [Sat, 9 Jun 2012 00:21:02 +0000 (20:21 -0400)]
Clear output buffer before calling GSUB pause functions
Behdad Esfahbod [Sat, 9 Jun 2012 00:17:10 +0000 (20:17 -0400)]
When merging clusters, extend the end
Behdad Esfahbod [Sat, 9 Jun 2012 00:13:56 +0000 (20:13 -0400)]
Merge clusters when ligating
Behdad Esfahbod [Fri, 8 Jun 2012 23:29:44 +0000 (19:29 -0400)]
Minor, use next_glyph()
Behdad Esfahbod [Fri, 8 Jun 2012 23:23:43 +0000 (19:23 -0400)]
Minor
Behdad Esfahbod [Fri, 8 Jun 2012 18:18:30 +0000 (14:18 -0400)]
Increase Uniscribe MAX_ITEMS
Behdad Esfahbod [Fri, 8 Jun 2012 18:08:32 +0000 (14:08 -0400)]
Fix Uniscribe charset matching
Previously was failing to match fonts that didn't support CHARSET_ANSI.
There still remains a problem with the Uniscribe backend, in that if a
font with the same family name is installed, and is newer, the native
one is preferred over the font we provide. Fixing it requires rewriting
the name table with a unique family name...
Behdad Esfahbod [Fri, 8 Jun 2012 15:48:29 +0000 (11:48 -0400)]
Remove unused code