11112 Commits

Author SHA1 Message Date
Behdad Esfahbod
64af3ad4a8 Inline cubic_quadratic_fit()
Another 5%.
2016-07-25 03:04:51 -04:00
Behdad Esfahbod
abc18236af Inline splitCubicIntoTwo()
Saves another 5%.
2016-07-25 02:12:15 -04:00
Behdad Esfahbod
c50d498ea5 Hand-code splitCubicIntoThree() 2016-07-24 14:10:41 -04:00
Behdad Esfahbod
8a13ef1edf Use splitCubicIntoTwo() more
Shaves another 5%.
2016-07-24 13:54:52 -04:00
Behdad Esfahbod
dff2cd8669 Add splitCubicIntoTwo()
Speeds up another 15% or so.
2016-07-24 13:54:52 -04:00
Behdad Esfahbod
12629a715b Whitespace 2016-07-23 17:11:45 -07:00
Behdad Esfahbod
f63a31dd99 Do less work. 2016-07-23 17:11:28 -07:00
Behdad Esfahbod
a412c1c9ec Make benchmark callable from profile / cProfile module 2016-07-23 16:28:28 -07:00
Behdad Esfahbod
d3f566ba54 Use complex numbers to implement points
Shows a 30% speedup for me.
2016-07-22 23:40:44 -07:00
Behdad Esfahbod
46f8416fff Remove more unused code 2016-07-22 23:11:13 -07:00
Behdad Esfahbod
bd52b4d510 Remove unused code 2016-07-22 15:52:00 -07:00
Behdad Esfahbod
49c2d886a0 Use exact error
To me, this looks about 40% faster.

WIP though.  API needs to change to take out error output argument.
Further optimization is possible by merging loops.
2016-07-22 02:21:41 -07:00
Behdad Esfahbod
185216bbfe Remove unused return values 2016-07-22 01:13:12 -07:00
Behdad Esfahbod
2d5e57e973 Make it twice faster by inlining lerp and expanding bezier equations 2016-07-22 00:49:19 -07:00
James Godfrey-Kittle
3cc8db41d8 Merge pull request #30 from anthrotype/normalize-offcurves
cu2qu.pens: make sure closed contour starts with an on-curve
2016-07-21 10:29:07 -07:00
Cosimo Lupo
ae2eb8d4df cu2qu.pens: make sure closed contour starts with an on-curve
This is still the same contour as before, as UFO spec allows both;
it's just normalized so that the first segments' off-curves appear at
the bottom, and the first point in the contour is an on-curve.
2016-07-21 11:35:41 +01:00
Cosimo Lupo
539a5010e5 subset: --recalc-average-width is disabled by default 2016-07-20 09:33:35 +01:00
Behdad Esfahbod
d96e246532 Make solveCubic() more robust
Fixes https://github.com/behdad/fonttools/issues/621#issuecomment-226671968
2016-07-19 22:50:09 -07:00
Miguel Sousa
2240bcbd22 Example that fails latest PointInsidePen (#638) 2016-07-19 22:39:57 -07:00
Cosimo Lupo
d1a27bd671 subset: add --recalc-average-width command-line option (on by default); log message if xAvgCharWidth changed 2016-07-19 22:54:05 +01:00
Cosimo Lupo
9e148a409d Merge pull request #636 from khaledhosny/subset-xAvgCharWidth
[subset] Recalculate OS/2.xAvgCharWidth
2016-07-19 22:35:28 +01:00
Khaled Hosny
efb32d5402 [subset] Recalculate OS/2.xAvgCharWidth 2016-07-18 01:35:18 +02:00
Behdad Esfahbod
10aaac53f2 Fix test 2016-07-16 21:58:41 -07:00
Behdad Esfahbod
81d84e6f85 Fix PointInsidePen
https://github.com/behdad/fonttools/issues/621
2016-07-16 21:47:37 -07:00
Behdad Esfahbod
9c037fc826 [gvar] Add TODO 2016-07-16 21:22:20 -07:00
Miguel Sousa
a00cacea96 Two more tests for pointInsidePen (#622) 2016-07-16 21:22:04 -07:00
Behdad Esfahbod
b1eeaa5151 [gvar] Fix point encoding
Where more than one run is used, it's only the first run's first point
that is absolute, all other values are relative.

Similar fix landing in FreeType soon.  Fixes lizzard glyph (glyphname
"dollar") in Zycon.
2016-07-15 18:15:17 -07:00
Michael Yin
18b905b06d [ttLib/pyftmerge] Handle cmap merge better (#635)
Changed the merge algorithm to properly handle cmap subtables
of type 4 and 12 with platform id and encoding ids of 3/1 and 3/10
respectively. All other subtables are not merged and ignored.
The resulting merged cmap table includes a subtable of format 4/3/1
and a format 12 subtable iff there are mappings outside of the BMP.

If one font has two codepoints that point to the same glyph,
and another font has the same code points pointing to two other glyphs,
keep the behavior where the first replacement glyph is stored in 'locl'
and output the third glpyh (or more) to let the user know that they were
dropped, instead of failing to merge the font.

Fixes #444
Fixes #322
2016-07-13 14:00:36 -07:00
Behdad Esfahbod
5cd1fbaff6 [subset] Clear CFF Encoding vector
Fixes https://github.com/behdad/fonttools/issues/620
2016-07-13 00:33:41 -07:00
Behdad Esfahbod
e9fb97d858 Fix overflow-fixing of Extension subtables
Fixes https://github.com/behdad/fonttools/issues/574
This was broken by 319643ad.  Ouch!
Was quite a debugging session to pin it down.
2016-07-12 23:55:47 -07:00
Behdad Esfahbod
3b8387fa45 [merge] Sort FeatureList by feature tag
Fixes https://github.com/behdad/fonttools/issues/444
2016-07-11 17:02:26 -07:00
Behdad Esfahbod
53d78d9956 [merge] Fix for ClassDef.Format and Coverage.Format
Part of https://github.com/behdad/fonttools/issues/444
2016-07-11 16:30:14 -07:00
Behdad Esfahbod
501e1f2f7e [symfont] Remove another level of indirection
Saves another few percents, though not as much as previous commit.
2016-07-11 12:23:56 -07:00
Behdad Esfahbod
7fd9dce0e9 [symfont] Speed up a bit
Remove one level of indirection in access to point data in generated
functions; ie. use p0, p1, ... instead of P[0], P[1], ...

Makes for about 10% speedup.
2016-07-11 12:23:56 -07:00
Behdad Esfahbod
cde56fce66 [symfont] Minor 2016-07-11 12:23:56 -07:00
Adrien Tétar
5a80482507 Merge pull request #39 from moyogo/unicode-userName
make sure we’re passing unicode string to userNameToFileName()
2016-07-11 08:36:54 -07:00
Denis Moyogo Jacquerye
4f83f4bbe1 tests: copy doctest as unittest in test_filenames 2016-07-11 13:49:59 +01:00
Denis Moyogo Jacquerye
bb21cb7c3a userNameToFileName expects userName to be unicode strings, let it raise
if not
2016-07-11 13:49:59 +01:00
Adrien Tétar
ec0fe57545 filenames: only allow unicode in py2
i.e. restore the old behavior
2016-07-08 21:19:16 -07:00
Cosimo Lupo
1d809ac92f Merge pull request #632 from miguelsousa/cff-fix
Fix xml-roundtripping of CFF fonts (name-keyed & cid-keyed)
2016-07-06 19:48:59 +01:00
Miguel Sousa
8bf1bd4f30 [cff] fix fetching of fdSelectIndex value 2016-07-06 10:27:02 -06:00
Miguel Sousa
c04a6d922c [cff] fdSelect array only exists in CID fonts, so test for the presence of fdArray and set the selector value to None otherwise 2016-07-06 04:23:43 -06:00
Cosimo Lupo
9c6c4c4f4c merge_woff_metadata.py: make sure flavor is in "woff" or "woff2" 2016-07-04 16:11:04 +01:00
Cosimo Lupo
0782513d4d Snippets: add 'merge_woff_metadata.py' and 'dump_woff_metatada.py' scripts
This is just to exemplify how one could use the `TTFont.flavorData` attribute to get/set the WOFF metadata.
See discussion at https://github.com/behdad/fonttools/issues/630
2016-07-04 15:51:51 +01:00
Denis Moyogo Jacquerye
384b050b08 Merge pull request #629 from jamesgk/mtilib-cmap
Add cmap handling to mtiLib
2016-06-30 22:32:54 +01:00
James Godfrey-Kittle
797061679a [mtiLib] Make tables in parsers, don't pass in 2016-06-30 14:16:58 -07:00
James Godfrey-Kittle
1b61637473 Add cmap handling to mtiLib 2016-06-30 12:50:39 -07:00
Tal Leming
d5514cc566 Merge pull request #37 from anthrotype/no-empty-layerinfo
glifLib: don't write empty 'lib' element in layerinfo.plist
2016-06-28 10:38:37 -04:00
Cosimo Lupo
f92dcf36c1 don't write layerinfo.plist if 'lib' element is empty 2016-06-28 13:52:23 +01:00
Adrien Tétar
bac9e9b75a Merge pull request #36 from anthrotype/element-text-none
glifLib: don't raise AttributeError if element.text attribute is None
2016-06-25 16:15:01 -07:00