Behdad Esfahbod [Fri, 31 Aug 2012 22:12:01 +0000 (18:12 -0400)]
[Indic] Implement dotted-circle insertion for broken clusters
No panic, we reeally insert dotted circle when it's absolutely broken.
Fixes most of the dotted-circle cases against Uniscribe. (for Devanagari
fixes 80% of them, for Khmer 70%; the rest look like Uniscribe being
really bogus...)
I had to make a decision. Apparently Uniscribe adds one dotted circle
to each broken character. I tried that, but that goes wrong easily with
split matras. So I made it add only one dotted circle to an entire
broken syllable tail. As in: "if there was a dotted circle here, this
would have formed a correct cluster." That works better for split
stuff, and I like it more.
Behdad Esfahbod [Fri, 31 Aug 2012 20:49:34 +0000 (16:49 -0400)]
[Indic] Start adding dotted-circle instrastructure
Behdad Esfahbod [Fri, 31 Aug 2012 20:29:17 +0000 (16:29 -0400)]
Minor
Behdad Esfahbod [Fri, 31 Aug 2012 18:06:26 +0000 (14:06 -0400)]
Minor
Behdad Esfahbod [Fri, 31 Aug 2012 02:53:29 +0000 (22:53 -0400)]
[OT] Better fallback-position Thai / Lao ccc!=0 marks
Behdad Esfahbod [Thu, 30 Aug 2012 01:08:59 +0000 (21:08 -0400)]
[OT] Add serialize() for Coverage
Behdad Esfahbod [Thu, 30 Aug 2012 00:26:08 +0000 (20:26 -0400)]
[OT] Start adding serialize() API
Behdad Esfahbod [Wed, 29 Aug 2012 17:59:16 +0000 (13:59 -0400)]
Add HB_BUFFER_ASSERT_VAR
To be used in places we access buffer vars...
Behdad Esfahbod [Wed, 29 Aug 2012 15:53:26 +0000 (11:53 -0400)]
Move code around
Behdad Esfahbod [Wed, 29 Aug 2012 15:11:54 +0000 (11:11 -0400)]
Port Arabic fallback ligating to share code with GSUB
This will eventually allow us to skip marks, as well as (fallback)
attach marks to ligature components of fallback-shaped Arabic.
That would be pretty cool. I kludged GDEF props in, so mark-skipping
works, but the produced ligature id/components will be cleared later
by substitute_start() et al.
Perhaps using a synthetic table for Arabic fallback shaping was a better
idea. The current approach has way too many layering violations...
Behdad Esfahbod [Wed, 29 Aug 2012 14:40:49 +0000 (10:40 -0400)]
Minor
Behdad Esfahbod [Wed, 29 Aug 2012 03:18:22 +0000 (23:18 -0400)]
[GSUB] Move ligation logic over
Behdad Esfahbod [Wed, 29 Aug 2012 02:58:55 +0000 (22:58 -0400)]
[GSUB] Merge Ligature and context input matching
Looks better now...
Behdad Esfahbod [Wed, 29 Aug 2012 02:24:51 +0000 (22:24 -0400)]
Start converging Ligature and match_input
Behdad Esfahbod [Tue, 28 Aug 2012 23:16:38 +0000 (19:16 -0400)]
[hb-icu-le] Add visbility
Behdad Esfahbod [Tue, 28 Aug 2012 23:08:36 +0000 (19:08 -0400)]
Minor
Behdad Esfahbod [Tue, 28 Aug 2012 23:08:22 +0000 (19:08 -0400)]
Minor
Behdad Esfahbod [Tue, 28 Aug 2012 22:03:35 +0000 (18:03 -0400)]
Use VisualStudio-style atomic intrinsics on mingw32
Behdad Esfahbod [Tue, 28 Aug 2012 21:57:49 +0000 (17:57 -0400)]
Use namespace for OpenType tables
Avoids USHORT, SHORT, ULONG, LONG clashes with Windows API.
Behdad Esfahbod [Tue, 28 Aug 2012 20:31:23 +0000 (16:31 -0400)]
Revert "Minor"
This reverts commit
3e0a03978b91994bb7fa7922593cbdfc50878dfc.
I know remember why that line is there :).
Behdad Esfahbod [Mon, 27 Aug 2012 21:10:02 +0000 (17:10 -0400)]
Minor
Behdad Esfahbod [Mon, 27 Aug 2012 21:00:44 +0000 (17:00 -0400)]
Minor
Behdad Esfahbod [Mon, 27 Aug 2012 20:54:34 +0000 (16:54 -0400)]
Only fallback-position glyphs if we have the ccc
Previously, ccc=0 Thai / Lao marks were being
mispositioned. Don't touch them.
Behdad Esfahbod [Mon, 27 Aug 2012 20:28:05 +0000 (16:28 -0400)]
Center unknown marks horizontally
Behdad Esfahbod [Mon, 27 Aug 2012 19:54:15 +0000 (15:54 -0400)]
Minor
Behdad Esfahbod [Sun, 26 Aug 2012 18:30:18 +0000 (14:30 -0400)]
[Indic] Fix switch
D'oh. Was working by pure chance :)).
Behdad Esfahbod [Sun, 26 Aug 2012 18:27:44 +0000 (14:27 -0400)]
Bug 53815 - CoreText backend doesn't link
Behdad Esfahbod [Fri, 24 Aug 2012 04:44:53 +0000 (00:44 -0400)]
Remove TODO items
Behdad Esfahbod [Fri, 24 Aug 2012 04:41:51 +0000 (00:41 -0400)]
[graphite2] Cleanup scratch buffer allocation
Behdad Esfahbod [Fri, 24 Aug 2012 03:59:55 +0000 (23:59 -0400)]
[icu-le] Implement icu layout engine shaper
Behdad Esfahbod [Fri, 24 Aug 2012 01:52:44 +0000 (21:52 -0400)]
[icu-le] Hook up to hb_face_t
Behdad Esfahbod [Fri, 24 Aug 2012 01:37:51 +0000 (21:37 -0400)]
[icu-le] Actually use the FontTableCache
Behdad Esfahbod [Fri, 24 Aug 2012 01:23:41 +0000 (21:23 -0400)]
[icu-le] Start adding a icu-layout-engine backend
Import PortableFontInstance and add shaper stub.
Behdad Esfahbod [Thu, 23 Aug 2012 20:26:07 +0000 (16:26 -0400)]
[Indic] For old-spec, match non-zero context
Fixes consonant-position with old-spec Malayalam. Uniscribe seem to be
doing this. Fixes below-base La (eg. Pa,H,La) with AnjaliNewLipi.ttf.
Doesn't regress new-spec or other scripts.
Behdad Esfahbod [Thu, 23 Aug 2012 20:22:28 +0000 (16:22 -0400)]
[GSUB] Allow non-zero-context matching in would_apply()
To be used in the next patch.
Behdad Esfahbod [Thu, 23 Aug 2012 20:10:37 +0000 (16:10 -0400)]
Revert "[Indic/GSUB] Ignore context when matching would_apply()"
This reverts commit
24dd4e56743c6ce5e01cb710ca9e01b3e527af58.
Oops. My bad. The change _regressed_ Malayalam test suite, not
improved it. I'll redo it, differentiating between old-spec and
new-spec cases.
Behdad Esfahbod [Thu, 23 Aug 2012 19:47:10 +0000 (15:47 -0400)]
[Indic/GSUB] Ignore context when matching would_apply()
The MS Indic specs say "...all classifications are determined ... using
context-free substitutions." However, testing shows that MS's Malayalam
shapers (both old and new), "match" even if there is no zero-context rule.
We follow.
Fixes below-base La (eg. Pa,H,La) with AnjaliNewLipi.ttf (old spec).
Moreover, test suite Malayalam failures are down to 312 from 875! No
change in other scripts.
Current numbers:
BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.
00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60769 out of 60809 tests passed. 40 failed (0.0657797%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.
00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1047541 out of 1048416 tests passed. 875 failed (0.0834592%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271726 out of 271847 tests passed. 121 failed (0.0445103%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970558 out of 970573 tests passed. 15 failed (0.
00154548%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
Behdad Esfahbod [Thu, 23 Aug 2012 19:19:45 +0000 (15:19 -0400)]
[Indic] Implement pre-base reordering Ra for old-spec Malayalam
Fixes Pa,H,Ra sequence with AnjaliNewLipi.ttf.
Behdad Esfahbod [Thu, 23 Aug 2012 16:06:14 +0000 (12:06 -0400)]
[Indic] Only apply basic features per-syllable
Free up syllables and let features work across syllables for the
presentation forms features and GPOS.
Fixed:
- 1 GURMUKHI test (remains 40)
- 12 KHMER tests (remains 18)
- 11 SINHALA tests (remains 121)
Regresses:
- 5 MALAYALAM tests (up to 312)
Current numbers:
BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%)
DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.
00777502%)
GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%)
GURMUKHI: 60769 out of 60809 tests passed. 40 failed (0.0657797%)
KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%)
KHMER: 299106 out of 299124 tests passed. 18 failed (0.
00601757%)
LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%)
MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed (0.0297592%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271726 out of 271847 tests passed. 121 failed (0.0445103%)
TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%)
TELUGU: 970558 out of 970573 tests passed. 15 failed (0.
00154548%)
TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%)
Behdad Esfahbod [Thu, 23 Aug 2012 13:33:30 +0000 (09:33 -0400)]
Whitespace
Behdad Esfahbod [Sat, 18 Aug 2012 17:59:46 +0000 (13:59 -0400)]
Release 0.9.3
Behdad Esfahbod [Sat, 18 Aug 2012 17:56:10 +0000 (13:56 -0400)]
Fix ChangeLog generation rule
Behdad Esfahbod [Thu, 16 Aug 2012 15:46:46 +0000 (11:46 -0400)]
Add comment
Behdad Esfahbod [Thu, 16 Aug 2012 15:35:50 +0000 (11:35 -0400)]
[OT] Fix Arabic shaper OOB access
https://bugzilla.mozilla.org/show_bug.cgi?id=782908
Behdad Esfahbod [Thu, 16 Aug 2012 12:09:44 +0000 (08:09 -0400)]
[configure] Cleanup check for ICU
Check for upstream-provided 'icu-uc' pkgconfig package.
Behdad Esfahbod [Thu, 16 Aug 2012 11:32:59 +0000 (07:32 -0400)]
[ICU] Fix includes
As reported by Steven Loomis, including uversion.h works everywhere.
Behdad Esfahbod [Wed, 15 Aug 2012 22:52:17 +0000 (18:52 -0400)]
Whitespace
Behdad Esfahbod [Wed, 15 Aug 2012 21:24:28 +0000 (17:24 -0400)]
[NEWS] Fix date
Oops!
Behdad Esfahbod [Tue, 14 Aug 2012 13:33:18 +0000 (09:33 -0400)]
Minor
Behdad Esfahbod [Mon, 13 Aug 2012 14:52:52 +0000 (10:52 -0400)]
Fix ICU build with older ICUs
Behdad Esfahbod [Sun, 12 Aug 2012 21:11:27 +0000 (17:11 -0400)]
Minor
Behdad Esfahbod [Sun, 12 Aug 2012 01:32:23 +0000 (21:32 -0400)]
minor
Behdad Esfahbod [Sun, 12 Aug 2012 01:26:25 +0000 (21:26 -0400)]
[ICU] Use new normalizer2 compose/decompose API
It's considerably faster than the fallback implementation we had
previously!
Behdad Esfahbod [Sat, 11 Aug 2012 23:17:54 +0000 (19:17 -0400)]
Add TODO
Behdad Esfahbod [Sat, 11 Aug 2012 22:34:13 +0000 (18:34 -0400)]
[OT] Unbreak Thai shaping and fallback Arabic shaping
The merger of normalizer and glyph-mapping broke shapers that
modified text stream. Unbreak them by adding a new preprocess_text
shaping stage that happens before normalizing/cmap and disallow
setup_mask modification of actual text.
Behdad Esfahbod [Sat, 11 Aug 2012 22:20:28 +0000 (18:20 -0400)]
[OT] Add shape_plan to Arabic shaper
Behdad Esfahbod [Sat, 11 Aug 2012 21:36:23 +0000 (17:36 -0400)]
Add TODO
Behdad Esfahbod [Fri, 10 Aug 2012 20:38:44 +0000 (16:38 -0400)]
[OT] Implement fallback mark positioning for "double" combining marks
Behdad Esfahbod [Fri, 10 Aug 2012 20:34:04 +0000 (16:34 -0400)]
[OT] Fix fallback mark positioning with left-to-right text
Ouch!
Behdad Esfahbod [Fri, 10 Aug 2012 18:49:37 +0000 (14:49 -0400)]
Bump version to 0.9.2
A *real* release this time, with NEWS, ChangeLog, etc.
Behdad Esfahbod [Fri, 10 Aug 2012 17:49:32 +0000 (13:49 -0400)]
Bump version to 0.9.1
Behdad Esfahbod [Fri, 10 Aug 2012 13:06:30 +0000 (09:06 -0400)]
[test] Move around
Behdad Esfahbod [Fri, 10 Aug 2012 13:05:29 +0000 (09:05 -0400)]
[test] Add Urdu ligature sequences from CRULP
Behdad Esfahbod [Fri, 10 Aug 2012 07:51:44 +0000 (03:51 -0400)]
[OT] Slightly adjust normalizer
The change is very subtle. If we have a single-char cluster that
decomposes to three or more characters, then try recomposition, in
case the farther mark may compose with the base.
Behdad Esfahbod [Fri, 10 Aug 2012 07:28:50 +0000 (03:28 -0400)]
Minor
Behdad Esfahbod [Fri, 10 Aug 2012 02:33:32 +0000 (22:33 -0400)]
[OT] Avoid calling get_glyph() twice
Essentially move the glyph mapping to normalization process.
The effect on Devanagari is small (but observable). Should be more
observable in simple text, like ASCII.
Behdad Esfahbod [Fri, 10 Aug 2012 02:00:53 +0000 (22:00 -0400)]
[OT] Remove redundant check
Behdad Esfahbod [Fri, 10 Aug 2012 01:58:07 +0000 (21:58 -0400)]
[OT] More code shuffling around
Preparing for merging map_glyphs() and normalize().
Behdad Esfahbod [Fri, 10 Aug 2012 01:48:55 +0000 (21:48 -0400)]
Shuffle buffer variable allocations around
To room for more allocations, coming.
Behdad Esfahbod [Fri, 10 Aug 2012 01:31:52 +0000 (21:31 -0400)]
Minor
Behdad Esfahbod [Fri, 10 Aug 2012 01:12:30 +0000 (21:12 -0400)]
Fill out combining class resetting for fallback shaping Thai/Lao/Tibetan
Behdad Esfahbod [Thu, 9 Aug 2012 22:30:34 +0000 (18:30 -0400)]
Revert "Reject lookups with no subTable"
This reverts commit
30ec9002d84e8b49290e782e6192069821ffa942.
See previous commit.
Behdad Esfahbod [Thu, 9 Aug 2012 22:30:05 +0000 (18:30 -0400)]
Revert "[GSUB/GPOS] Reject Context/ChainContext lookups with zero input"
This reverts commit
0981068b75710397f08e0d2d776a0a2ea68d7117.
I was confused. Even if we access coverage[0] unconditionally, we don't
need bound checks since the array machinary already handles that.
Behdad Esfahbod [Wed, 8 Aug 2012 22:04:29 +0000 (18:04 -0400)]
Add check-exported-symbols.sh
And misc linking fixes.
Behdad Esfahbod [Wed, 8 Aug 2012 21:44:19 +0000 (17:44 -0400)]
Misc minor fixes
Behdad Esfahbod [Wed, 8 Aug 2012 21:16:01 +0000 (17:16 -0400)]
Use a export-file for Windows builds
Apparently even that doesn't make check-internal-symbols.sh happy with
mingw32. Going to disable that for DLLs again, but hopefully the
export-file is doing *something*.
Behdad Esfahbod [Wed, 8 Aug 2012 21:15:44 +0000 (17:15 -0400)]
[hb-old] speed-up build
Behdad Esfahbod [Wed, 8 Aug 2012 20:53:37 +0000 (16:53 -0400)]
Minor
Behdad Esfahbod [Wed, 8 Aug 2012 19:27:14 +0000 (15:27 -0400)]
Minor
Behdad Esfahbod [Wed, 8 Aug 2012 19:23:48 +0000 (15:23 -0400)]
Make default_language threadsafe
Behdad Esfahbod [Wed, 8 Aug 2012 19:23:45 +0000 (15:23 -0400)]
Minor
Behdad Esfahbod [Wed, 8 Aug 2012 18:59:09 +0000 (14:59 -0400)]
Minor
Behdad Esfahbod [Wed, 8 Aug 2012 18:48:41 +0000 (14:48 -0400)]
Adjust a couple source checks
Behdad Esfahbod [Wed, 8 Aug 2012 18:33:37 +0000 (14:33 -0400)]
Minor renaming
Behdad Esfahbod [Wed, 8 Aug 2012 18:26:36 +0000 (14:26 -0400)]
Fix cast
https://bugs.freedesktop.org/show_bug.cgi?id=53233
Behdad Esfahbod [Wed, 8 Aug 2012 05:20:45 +0000 (01:20 -0400)]
[OT] Implement fallback positioning
Implemented for Arabic, Hebrew, and generic marks.
Activated if no GPOS table present.
Behdad Esfahbod [Wed, 8 Aug 2012 03:44:47 +0000 (23:44 -0400)]
[hb-old] Fix warnings
Behdad Esfahbod [Wed, 8 Aug 2012 02:41:38 +0000 (22:41 -0400)]
[OT] Start adding fallback positioning
Used when there is no GPOS.
Behdad Esfahbod [Wed, 8 Aug 2012 02:32:23 +0000 (22:32 -0400)]
Minor
Behdad Esfahbod [Wed, 8 Aug 2012 02:25:24 +0000 (22:25 -0400)]
[GSUB] Generalize would_apply()
Fixes logic also, where before we were always matching if glyphs_len==1
and a ligature started with the glyph.
Behdad Esfahbod [Wed, 8 Aug 2012 02:13:25 +0000 (22:13 -0400)]
Add hb_font_glyph_from/to_string
Behdad Esfahbod [Wed, 8 Aug 2012 01:44:25 +0000 (21:44 -0400)]
Minor
Behdad Esfahbod [Wed, 8 Aug 2012 01:12:49 +0000 (21:12 -0400)]
[OT] Apply 'rclt' feature in horizontal mode
'rclt' is "Required Contextual Forms" being proposed by Microsoft.
It's like 'calt', but supposedly always on. We apply 'calt' anyway,
and now apply this too.
Behdad Esfahbod [Tue, 7 Aug 2012 20:57:48 +0000 (16:57 -0400)]
Fix warnings
Behdad Esfahbod [Tue, 7 Aug 2012 20:57:02 +0000 (16:57 -0400)]
More refactoring
Behdad Esfahbod [Tue, 7 Aug 2012 20:51:48 +0000 (16:51 -0400)]
Minor refactoring
Behdad Esfahbod [Tue, 7 Aug 2012 20:45:27 +0000 (16:45 -0400)]
Add Hebrew presentation forms shaping
Lifted from https://bugzilla.mozilla.org/show_bug.cgi?id=728866
Behdad Esfahbod [Tue, 7 Aug 2012 18:11:16 +0000 (14:11 -0400)]
[Graphite] Minor
Behdad Esfahbod [Tue, 7 Aug 2012 17:01:12 +0000 (13:01 -0400)]
Remove enum trailing comma
...again.
Behdad Esfahbod [Tue, 7 Aug 2012 03:06:04 +0000 (23:06 -0400)]
Minor