Behdad Esfahbod
aae69451df
[gsub] Minor shuffling
2014-06-05 19:00:08 -04:00
Behdad Esfahbod
b6b304f12b
[ot] Add TODO re zero-len MultipleSubst sequences
2014-06-05 17:12:54 -04:00
Behdad Esfahbod
6faff8e413
Add static storage classifier to inline functions
...
Before we were just relying on the compiler inlining them and not
leaving a trace in our public API. Try to fix. Hopefully not
breaking anyone's build.
2014-04-28 14:30:44 -07:00
Behdad Esfahbod
333cc6e2d1
[otlayout] Remove unused is_inplace()
...
Patch from Jonathan Kew.
2013-10-30 17:30:11 +00:00
Behdad Esfahbod
101303dbf7
[otlayout] More shuffling around
2013-10-18 11:21:15 +02:00
Behdad Esfahbod
91689de260
[otlayout] Add _hb_glyph_info_set_glyph_props()
...
No functional change.
2013-10-18 11:21:15 +02:00
Behdad Esfahbod
3ddf892b53
[otlayout] Renaming
2013-10-18 11:21:15 +02:00
Behdad Esfahbod
03058c3d1e
[otlayout] Remove two unused HB_OT_LAYOUT_GLYPH_PROPS_* values
2013-10-17 20:55:34 +02:00
Behdad Esfahbod
49901862e3
[otlayout] Guard against use of ReverseChain through Context
2013-10-17 19:48:51 +02:00
Behdad Esfahbod
e714fe6d6a
[otlayout] Simplify ligate_input()
...
Shouldn't change behavior at all, but is faster / more robust.
2013-10-17 13:49:51 +02:00
Behdad Esfahbod
6b65a76b40
[otlayout] Fix (Chain)Context recursion!
...
Previously we only supported recursive sublookups with
ascending indices. We were also not correctly handling
non-1-to-1 recursed lookups.
Fix all that!
Fixes the three tests in test/shaping/tests/context-matching.tests,
which were derived from NotoSansBengali and NotoSansDevanagari
among others.
2013-10-14 18:54:51 +02:00
Behdad Esfahbod
6c48f20eea
[otlayout] Add structs for JSTF table
2013-09-09 15:43:10 -04:00
Behdad Esfahbod
45f3d980c9
[OTLayout] Merge / templateize apply_string()
2013-05-04 16:04:04 -04:00
Behdad Esfahbod
780cd930a9
[OTLayout] Minor
2013-05-04 16:04:04 -04:00
Behdad Esfahbod
2e0c44f4be
[OTLayout] Add is_inplace() method to GSUB
2013-05-04 16:04:04 -04:00
Behdad Esfahbod
5d59f99920
[OTLayout] Make MultipleSubst in-place for sequences of len=1
2013-05-02 15:39:16 -04:00
Behdad Esfahbod
54f84a6b85
[OTLayout] Whitespace
2013-05-02 15:39:16 -04:00
Behdad Esfahbod
0dc3a4e034
Obssesive optimization
...
Not measurable by any means, but conceptually this is faster since
the mask matches more often than the digest.
2013-04-17 23:04:03 -04:00
Behdad Esfahbod
ee5464d17f
[OTLayout] Move code around
2013-03-09 01:59:30 -05:00
Behdad Esfahbod
9c5a9ee967
[OTLayout] Rename process() to dispatch()
2013-03-09 01:55:04 -05:00
Behdad Esfahbod
99fa9ea020
Minor
2013-02-15 11:47:24 -05:00
Behdad Esfahbod
607feb7cff
[OTLayout] Ignore default-ignorables when matching GSUB/GPOS
...
When matching lookups, be smart about default-ignorable characters.
In particular:
Do nothing specific about ZWNJ, but for the other default-ignorables:
If the lookup in question uses the ignorable character in a sequence,
then match it as we used to do. However, if the sequence match will
fail because the default-ignorable blocked it, try skipping the
ignorable character and continue.
The most immediate thing it means is that if Lam-Alef forms a ligature,
then Lam-ZWJ-Alef will do to. Finally!
One exception: when matching for GPOS, or for backtrack/lookahead of
GSUB, we ignore ZWNJ too. That's the right thing to do.
It certainly is possible to build fonts that this feature will result
in undesirable glyphs, but it's hard to think of a real-world case
that that would happen.
This *does* break Indic shaping right now, since Indic Unicode has
specific rules for what ZWJ/ZWNJ mean, and skipping ZWJ is breaking
those rules. That will be fixed in upcoming commits.
2013-02-14 12:57:50 -05:00
Behdad Esfahbod
407fc12466
[OTLayout] Remove bogus caching of glyph property
2013-02-13 11:13:06 -05:00
Behdad Esfahbod
8303593ba1
Minor
...
Use pointers instead of references, in preparation for upcoming change.
2012-12-04 17:08:41 -05:00
Behdad Esfahbod
3038ae6adb
[OTLayout] Minor
2012-11-30 08:24:13 +02:00
Behdad Esfahbod
b67881b171
[OTLayout] Remove operator() from Coverage
2012-11-24 19:13:55 -05:00
Behdad Esfahbod
4c4e8f0e75
[OTLayout] Reuse apply context for recursion
2012-11-24 01:13:20 -05:00
Behdad Esfahbod
26514d51b6
[OTLayout] More collect_glyphs()
2012-11-23 18:13:48 -05:00
Behdad Esfahbod
c6fb843f2a
[OTLayout] Templatize process_recurse_func
2012-11-23 18:04:08 -05:00
Behdad Esfahbod
9b34677f36
[OTLayout] Clean up closure() a bit
2012-11-23 17:55:40 -05:00
Behdad Esfahbod
f48ec0e834
[OTLayout] Add process() tracing
2012-11-23 17:23:41 -05:00
Behdad Esfahbod
ed2e135944
[OTLayout] More Extension templatizing
2012-11-23 17:10:40 -05:00
Behdad Esfahbod
7dddd4e72b
[OTLayout] More templatizing Extension
2012-11-23 17:04:55 -05:00
Behdad Esfahbod
653eeb2645
Make Extension a template
2012-11-23 16:57:36 -05:00
Behdad Esfahbod
08f1eede1b
Minor
2012-11-23 16:51:43 -05:00
Behdad Esfahbod
be218c688c
Pass this object to trace macros
2012-11-23 15:32:14 -05:00
Behdad Esfahbod
c779d82b2f
Fix warnings
2012-11-23 14:09:21 -05:00
Behdad Esfahbod
ec35a72a44
[OTLayout] Port apply() operator to process() template
2012-11-22 16:33:46 -05:00
Behdad Esfahbod
2005fa5340
[OTLayout] Port would_apply() and get_coverage() to process() templates
2012-11-22 16:33:46 -05:00
Behdad Esfahbod
44fc237b53
[OTLayout] Port closure() to process() template
2012-11-22 16:33:46 -05:00
Behdad Esfahbod
e8cfdd7fa8
Start implementing collect_glyphs() operation
...
Not functional yet.
2012-11-16 19:07:06 -08:00
Behdad Esfahbod
7d52e6601f
Whitespace
2012-11-16 18:49:54 -08:00
Behdad Esfahbod
5a08ecf920
Implement hb_ot_layout_get_glyph_class()
2012-11-16 13:34:29 -08:00
Behdad Esfahbod
0bc7a38463
[OT] Fix ReverseChainingSubst
...
We should make it clear that we don't want output buffer in this case,
otherwise buffer->backtrack_len() would be wrong.
2012-10-29 22:02:45 -07:00
Behdad Esfahbod
fabd3113a9
[OT] Port Arabic fallback shaping to synthetic GSUB
...
All of init/medi/fina/isol and rlig implemented.
Let there be dragons... ⻯
2012-09-06 00:51:44 -04:00
Behdad Esfahbod
1d3947a6bd
Minor
2012-09-04 22:42:17 -04:00
Behdad Esfahbod
b3b89b6658
[OT] Add SubstLookup serialize API
2012-09-04 21:28:33 -04:00
Behdad Esfahbod
a930c68e9c
[OT] More serialize. Implements all basic GSUB subtables
2012-09-04 19:16:09 -04:00
Behdad Esfahbod
1b38b4e817
Minor
2012-09-04 18:17:21 -04:00
Behdad Esfahbod
2bd9fe3598
Refactor
2012-09-04 15:15:19 -04:00