Commit Graph

2386 Commits

Author SHA1 Message Date
Behdad Esfahbod
8ba8042821 [Indic] Fix consonant position font lookup logic
Oops.  I broken this badly and the test suite did not notice.  That
worries me.  Have to investigate.
2012-08-03 18:54:54 -07:00
Behdad Esfahbod
abd0c05f1f Minor 2012-08-03 18:45:05 -07:00
Behdad Esfahbod
46ee108ef8 Fix leak 2012-08-03 18:21:13 -07:00
Behdad Esfahbod
71baea0062 [OT] Use general-category, not GDEF class, to decide to zero mark advances
At this point, the GDEF glyph synthesis looks pointless.  Not that I
have many fonts without GDEF lying around.

As for mark advance zeroing when GPOS not available, that also is being
replaced by proper fallback mark positioning soon.
2012-08-03 17:40:07 -07:00
Behdad Esfahbod
3a7e137a68 Dn't use gint 2012-08-03 17:23:40 -07:00
Behdad Esfahbod
11b0e20ba4 [Indic] Add per-script configuration tables
This concludes the Indic shape_plan work.  May do for Arabic also...
2012-08-02 14:21:40 -04:00
Behdad Esfahbod
85fc6c483f [Indic] Move more stuff to the shape_plan
Almost done.  Need to add per-script static tables.
2012-08-02 12:21:44 -04:00
Behdad Esfahbod
914ffaa40f [Indic] Move more repeated work into shape_plan 2012-08-02 11:05:32 -04:00
Behdad Esfahbod
a8c6da90f4 [OT] Add per-complex-shaper shape_plan data
Hookup some Indic data to it.  More to come.
2012-08-02 10:46:34 -04:00
Behdad Esfahbod
8bb5deba96 [OT] Pipe shape_plan down to pause_callbacks 2012-08-02 10:07:58 -04:00
Behdad Esfahbod
3e38c0f288 More massaging 2012-08-02 09:44:18 -04:00
Behdad Esfahbod
16c6a27b4b [OT] Port complex_shaper to planner/plan 2012-08-02 09:38:28 -04:00
Behdad Esfahbod
5393e3a62b [OT] Minor refactoring 2012-08-02 09:24:35 -04:00
Behdad Esfahbod
24eacf17c8 [Indic] Move consonant-position-setting into initial_reordering() 2012-08-02 08:42:51 -04:00
Behdad Esfahbod
afbcc24be0 [GSUB] Wire the font, not just the face, down to substitute()
We need the font for glyph lookup during GSUB pauses in Indic shaper.
Could perhaps be avoided, but at this point, we don't mean to support
separate substitute()/position() entry points (anymore), so there is
no point in not providing the font to GSUB.
2012-08-02 08:36:40 -04:00
Behdad Esfahbod
b0e6a26a10 [OT] Hide some API
It was impossible to meaningfully use them from the outside these days.
2012-08-02 08:11:14 -04:00
Behdad Esfahbod
305246744e Minor 2012-08-02 08:08:04 -04:00
Behdad Esfahbod
8ef3d53255 [Indic] More refactoring of consonant position peeking in the font
To be moved to initial_reordering next...
2012-08-02 07:59:19 -04:00
Behdad Esfahbod
3eb6f81fd3 [Indic] Refactor
Move all the logic that needs to eventually move into the indic table
into hb-ot-shape-complex-indic-private.hh.
2012-08-02 07:38:39 -04:00
Behdad Esfahbod
3614ba242f [Indic] Rename 2012-08-02 07:23:42 -04:00
Behdad Esfahbod
610e5e8f71 [Indic] Streamline feature would_apply()
Comes with some 10% speedup for Devanagari even!
2012-08-02 05:41:18 -04:00
Behdad Esfahbod
1d002048d5 [Indic] Minor 2012-08-02 05:02:53 -04:00
Behdad Esfahbod
6f76113755 [GSUB/GPOS] Check array size before accessing digests 2012-08-02 04:00:31 -04:00
Behdad Esfahbod
22148b8c4a Use Coverage digests in would_apply 2012-08-02 03:51:51 -04:00
Behdad Esfahbod
6c459c8fef Minor 2012-08-02 03:45:53 -04:00
Behdad Esfahbod
e2b8d75fa6 Use wider set digests on 64-bit archs 2012-08-01 22:17:48 -04:00
Behdad Esfahbod
0120ce9679 [GSUB/GPOS] Remove unused get_coverage() methods 2012-08-01 21:56:35 -04:00
Behdad Esfahbod
1336ecdf8e [GSUB/GPOS] Use Coverage digests as gatekeeper
Gives me a good 10% speedup for the Devanagari test case.  Less so
for less lookup-intensive tests.

For the Devanagari test case, the false positive rate of the GSUB digest
is 4%.
2012-08-01 21:46:36 -04:00
Behdad Esfahbod
a878c58a8f [GSUB/GPOS] Add add_coverage() 2012-08-01 21:46:19 -04:00
Behdad Esfahbod
60a3035ac5 Add hb_set_digest_t
Implement two set digests, and one that combines the two.
2012-08-01 21:46:19 -04:00
Behdad Esfahbod
c8accf1dd2 [OT] Templatize Coverage::add_coverage() 2012-08-01 21:05:57 -04:00
Behdad Esfahbod
8fbfda920e Inline font getters 2012-08-01 19:03:46 -04:00
Behdad Esfahbod
6adf417bc1 Use a lookup table for modified_combining_class 2012-08-01 18:07:42 -04:00
Behdad Esfahbod
208f70f055 Inline Unicode callbacks internally 2012-08-01 17:13:10 -04:00
Behdad Esfahbod
7470315a3e Move unicode accessors around 2012-08-01 17:01:59 -04:00
Behdad Esfahbod
21fdcee001 Add hb_unicode_combining_class_t 2012-08-01 16:28:50 -04:00
Behdad Esfahbod
84186a6400 Add commentary on the compatibility decomposition in the normalizer 2012-08-01 13:32:39 -04:00
Behdad Esfahbod
0834d95201 [hb-old] Adjust mark positioning parameters
Fallback mark positioning works now...  With hb-ft and hb-view /
hb-shape at least.
2012-08-01 00:21:09 -04:00
Behdad Esfahbod
4ca743dfb8 [old] Implement fontMetrics 2012-08-01 00:03:41 -04:00
Behdad Esfahbod
1e7d860613 [GPOS] Adjust mark advance-width zeroing logic
If there is no GPOS, zero mark advances.

If there *is* GPOS and the shaper requests so, zero mark advances for
attached marks.

Fixes regression with Tibetan, where the font has GPOS, and marks a
glyph as mark where it shouldn't get zero advance.
2012-07-31 23:41:06 -04:00
Behdad Esfahbod
a8842e4a44 Remove some TODO items 2012-07-31 23:17:23 -04:00
Behdad Esfahbod
2bc3b9a616 [OT] Zero mark advances if the shaper desires so
Enabled for all shapers except for Indic.
2012-07-31 23:17:22 -04:00
Behdad Esfahbod
5fecd8b035 [OT] Synthesize glyph classes 2012-07-31 23:17:22 -04:00
Behdad Esfahbod
03b09214c0 [GSUB] Minor 2012-07-31 22:43:58 -04:00
Behdad Esfahbod
f0fc1df8fc [hb-old] Implement getGlyphMetrics()
Still working on it.
2012-07-31 22:43:32 -04:00
Behdad Esfahbod
378d279bbf Implement Unicode compatibility decompositions
Based on patch from Philip Withnall.
https://bugs.freedesktop.org/show_bug.cgi?id=41095
2012-07-31 21:36:16 -04:00
Behdad Esfahbod
321ec29cc2 Remove unused function 2012-07-31 21:10:16 -04:00
Behdad Esfahbod
69cc492dc1 [buffer] Minor 2012-07-31 14:51:36 -04:00
Behdad Esfahbod
693918ef85 [OT] Streamline complex shaper enumeration
Add a shaper class struct.
2012-07-30 21:08:51 -04:00
Behdad Esfahbod
c2e42c3db6 Minor 2012-07-30 19:54:50 -04:00