Commit Graph

2143 Commits

Author SHA1 Message Date
Behdad Esfahbod
4e766ff28d Add fast-path for GPOS too
Shaves another 3% for DejaVu Sans long Latin strings.
2012-06-09 02:53:57 -04:00
Behdad Esfahbod
993c51915f 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!
2012-06-09 02:48:16 -04:00
Behdad Esfahbod
f19e0b0099 Match input before backtrack
Makes more sense, optimization-wise.
2012-06-09 02:26:57 -04:00
Behdad Esfahbod
67bb9e8cea Add set add_coverage() to Coverage() 2012-06-09 02:02:46 -04:00
Behdad Esfahbod
4952f0aa5b Minor 2012-06-09 01:43:20 -04:00
Behdad Esfahbod
ad6a6f2240 Minor 2012-06-09 01:43:20 -04:00
Behdad Esfahbod
46617a4213 Fix cache implementation 2012-06-09 01:43:20 -04:00
Behdad Esfahbod
ce47613889 Micro-optimize
I know...
2012-06-09 01:43:15 -04:00
Behdad Esfahbod
70416de298 Minor 2012-06-09 00:56:41 -04:00
Behdad Esfahbod
99159e52a3 Use linear search for small counts
I see about 8% speedup with long strings with DejaVu Sans.
2012-06-09 00:50:40 -04:00
Behdad Esfahbod
caf0412690 Minor 2012-06-09 00:26:32 -04:00
Behdad Esfahbod
0f8fea71a6 Minor. Hide _hb_ot_layout_get_glyph_property() 2012-06-09 00:24:38 -04:00
Behdad Esfahbod
44b8ee0c90 Minor 2012-06-09 00:23:24 -04:00
Behdad Esfahbod
7b84c536c1 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.
2012-06-08 22:04:23 -04:00
Behdad Esfahbod
ec57e0c565 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.
2012-06-08 21:47:23 -04:00
Behdad Esfahbod
e085fcf7ca Remove unused buffer->replace_glyphs_be16 2012-06-08 21:45:00 -04:00
Behdad Esfahbod
3ec77d6ae0 Don't use replace_glyphs_be for MultipleSubst 2012-06-08 21:44:06 -04:00
Behdad Esfahbod
4b7192125f Minor 2012-06-08 21:41:46 -04:00
Behdad Esfahbod
4508789f4b Add test for static initializers and other C++ stuff 2012-06-08 21:32:43 -04:00
Behdad Esfahbod
56bd259b9a Minor 2012-06-08 21:29:18 -04:00
Behdad Esfahbod
4538b47bf0 Remove done TODO items 2012-06-08 21:02:57 -04:00
Behdad Esfahbod
bc8357ea7b Merge clusters during normalization 2012-06-08 21:01:20 -04:00
Behdad Esfahbod
fe3dabc08d Minor 2012-06-08 20:56:05 -04:00
Behdad Esfahbod
e88e14421a Use merge_clusters instead of open-coding 2012-06-08 20:55:21 -04:00
Behdad Esfahbod
330a2af3ff Use merge_clusters when forming Unicode clusters 2012-06-08 20:40:02 -04:00
Behdad Esfahbod
bd300df9ad Minor 2012-06-08 20:36:37 -04:00
Behdad Esfahbod
e51d2b6ed1 Extend into main buffer if extension hit end of out-buffer merging clusters 2012-06-08 20:36:33 -04:00
Behdad Esfahbod
5ced012d9f Extend end when merging clusters in out-buffer 2012-06-08 20:31:32 -04:00
Behdad Esfahbod
72c0a18783 Extend clusters backward in out-buffer 2012-06-08 20:30:03 -04:00
Behdad Esfahbod
cd5891493d Extend clusters backwards, into the out-buffer too 2012-06-08 20:28:59 -04:00
Behdad Esfahbod
77471e0371 Clear output buffer before calling GSUB pause functions 2012-06-08 20:21:02 -04:00
Behdad Esfahbod
cafa6f3727 When merging clusters, extend the end 2012-06-08 20:17:10 -04:00
Behdad Esfahbod
28ce5fa454 Merge clusters when ligating 2012-06-08 20:17:06 -04:00
Behdad Esfahbod
2bb1761ccb Minor, use next_glyph() 2012-06-08 19:29:44 -04:00
Behdad Esfahbod
5f68f8675e Minor 2012-06-08 19:23:43 -04:00
Behdad Esfahbod
8729691267 Increase Uniscribe MAX_ITEMS 2012-06-08 14:39:31 -04:00
Behdad Esfahbod
dbffa4c83d 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...
2012-06-08 14:39:31 -04:00
Behdad Esfahbod
82e8bd8628 Remove unused code 2012-06-08 14:39:31 -04:00
Behdad Esfahbod
6da9dbff21 Remove zero-width chars in the fallback shaper too 2012-06-08 10:53:35 -04:00
Behdad Esfahbod
68b76121f8 Fix regressions introduced by sed. Ouch!
Introduced in 99c2695759.
Broken mark-mark and mark-ligature stuff.
2012-06-08 10:47:00 -04:00
Behdad Esfahbod
0dd86f9f68 Whitespace 2012-06-08 10:23:03 -04:00
Behdad Esfahbod
8e7beba7c3 Fix Uniscribe clusters with direction-overriden Arabic 2012-06-08 10:22:06 -04:00
Behdad Esfahbod
b069c3c31b Really fix override-direction in Uniscribe 2012-06-08 10:10:29 -04:00
Behdad Esfahbod
fcd6f53261 Unbreak Uniscribe
Oops.  hb_tag_t and OPENTYPE_TAG have different endianness.  Perhaps
something to add API for in hb-uniscribe.h
2012-06-08 09:59:43 -04:00
Behdad Esfahbod
29eac8f591 Override direction in Uniscribe backend
Matches OT backend now.
2012-06-08 09:26:17 -04:00
Behdad Esfahbod
1c1233e576 Make Uniscribe backend respect selected script 2012-06-08 09:20:53 -04:00
Behdad Esfahbod
0bb0f5d419 Add note re _NullPool 2012-06-07 17:42:48 -04:00
Behdad Esfahbod
2a3d911fe0 Fix alignment-requirement missmatch
Detected by clang and lots of cmdline options.
2012-06-07 17:31:46 -04:00
Behdad Esfahbod
6095de1635 Fix clang warning with NO_MT path 2012-06-07 15:48:18 -04:00
Behdad Esfahbod
a18280a8ce Fix warnings produced by clang analyzer 2012-06-07 15:44:12 -04:00