1213 Commits

Author SHA1 Message Date
Behdad Esfahbod
7d130307e6 Simplify converter mapping for DeltaValue 2013-11-24 16:13:00 -05:00
Behdad Esfahbod
6f9b64f296 Fixup 41caf2d for DeltaValue tables
Not that I can find any fonts having these... Had to construct one
to test.
2013-11-24 16:09:57 -05:00
Behdad Esfahbod
24f978ccc6 Fixup 41caf2d
Lexical binding...

Fixes https://github.com/behdad/fonttools/issues/40
2013-11-24 15:09:49 -05:00
Behdad Esfahbod
c386d54fe3 Allow passing in locals variables to safeEval() 2013-11-24 09:37:49 -05:00
Behdad Esfahbod
601bb94afc Minor
Followup for 6e556aafc3be5ccf48a01d8113313abd2a633ba6.
2013-11-23 20:20:39 -05:00
Behdad Esfahbod
ffc3cfeed1 Allow using binary / octal / hex numbers in XML
In OpenType Layout tables that is.  Most (all) of the other
tables already use safeEval() which accepts these kinds of
things.
2013-11-23 20:18:24 -05:00
Behdad Esfahbod
a221a57ccd Improve Version handling
Version is really just a major.minor, NOT a Fixed.  But it has
been implemented as Fixed.  We now:

  1. Check that major is 1,
  2. If minor is not 0 (only defined for GDEF so far), then
     print the whole thing as hex in XML,
  3. When reading the XML, accept hex,
  4. In all four methods dealing with Version, support both
     fixed version (ie. 1.0), and long version (ie. 0x00010000).
2013-11-23 19:45:29 -05:00
Behdad Esfahbod
0b18ef6111 Remove Fixed vs fixed32 inconsistency 2013-11-23 19:21:24 -05:00
Behdad Esfahbod
ea017bd66f Remove USHORT vs uint16 inconsistency 2013-11-23 19:19:48 -05:00
Behdad Esfahbod
5962268b79 Remove unused "LONG" converter
LONG was replaced by Fixed long time ago.
2013-11-23 19:18:53 -05:00
Behdad Esfahbod
0de65295f6 Remove script to build otData.py
The was was originally generated, but is static now and this
allows cleaning it up and modifying it.
2013-11-23 19:12:11 -05:00
Behdad Esfahbod
3879cf9439 Use slots for OTTableReader
Slight performance gain even.
2013-11-22 19:34:57 -05:00
Behdad Esfahbod
6e556aafc3 Make ValueRecordFactory() immutable
Gives another 3% speedup.
2013-11-22 19:34:46 -05:00
Behdad Esfahbod
41caf2dea1 Remove tableStack in favor of countVars
We only needed tableStack to look back for counts.  So, just store
counts.  Gives ~8 speedup for large fonts I tested.  We are not
faster than not loading fonts lazily without this patch, so the
laziness patch combined with this doesn't have a net negative
performance impact anymore.
2013-11-22 19:13:14 -05:00
Behdad Esfahbod
0585b64f70 Minor 2013-11-22 16:46:03 -05:00
Behdad Esfahbod
d01c44a59b When lazy-loading tables, copy ValueFormat
Otherwise it may be overwritten before we use it.
2013-11-22 15:21:41 -05:00
Behdad Esfahbod
fc10b20c25 Minor 2013-11-20 21:50:16 -05:00
Behdad Esfahbod
f50d0dff86 Load all OpenType sub-structures lazily
Huge win for subsetter and anyone else who doesn't need the entire
tables.  Subsetting a huge font (eg. NotoSans-Regular.ttf) to a
small set (say, main Cyrillic characters) is something like six
times faster now.  Bulk of time was being spent in blowing up the
GPOS kerning pairs and attach points.  Now we don't load those if
they won't be in the final subset.

Slight slowdown for usecases that need the entire table.
2013-11-20 19:07:08 -05:00
Behdad Esfahbod
5988cc32cb Make BaseTable a new-style object 2013-11-19 17:40:46 -05:00
Behdad Esfahbod
98769437cd [subset] Fix against missing AttachList entries 2013-11-19 14:40:57 -05:00
Olivier Berten
70343cc48e Catch TTLibError raised when missing (or wrong) -y argument on a ttc file 2013-11-19 10:32:09 +01:00
Behdad Esfahbod
1117445fab [subset] Protect against missing rulesets
Fixes subsetting Molengo-Regular.ttf.
2013-11-18 20:20:49 -05:00
Olivier Berten
aa37c0aa7d Support for OS/2 table version 5 as proposed by Microsoft
https://github.com/fontforge/fontforge/issues/956
2013-11-19 00:44:38 +01:00
Paul Wise
0fff29aee5 Switched VCS from Subversion to git. 2013-11-19 00:37:29 +01:00
Behdad Esfahbod
fc4f438496 Fix parsing of hinting instructions that end in a PUSHB
Sounds useless, but MReifutaiM-Regular.ttf seems to have that, and the
parsing back from XML was failing because we expected a token whereas
after dropping whitespace there wasn't any left.
2013-11-18 16:06:01 -05:00
Behdad Esfahbod
17700bf926 Handle and warn about out-of-order Coverage table entries
Apparently the SIL Gentium fonts have wrong sorting in Coverage
tables.  That's broken by the spec, but shapers still work with
such fonts.  So, we warn when reading, and when writing, such
out-of-order coverage tables.
2013-11-18 16:05:00 -05:00
Behdad Esfahbod
846d09e380 Allow None for globalSubrs in T2CharString 2013-11-18 14:11:30 -05:00
Behdad Esfahbod
7e97247925 [subset] Handle inexistent feature / lookup lists 2013-11-15 17:57:15 -05:00
Behdad Esfahbod
6e70667659 Support loading broken Coverage tables
Hit by Google Fonts's font "Cabin" for example and a handful
of others.
2013-11-15 17:00:38 -05:00
Behdad Esfahbod
db0b1b8a34 Update to AGLFN version 1.7
Patch from Miguel Sousa.

Fixes https://github.com/behdad/fonttools/pull/18
2013-11-14 22:35:26 -05:00
Behdad Esfahbod
271f25feed More fixup 2013-11-14 21:57:25 -05:00
Behdad Esfahbod
2ee85985e4 Merge pull request #24 from samyakbhuta/master
Moving README.txt to README.md
2013-11-14 17:31:15 -08:00
Behdad Esfahbod
d1072ddcc9 Further fixup to cf75a7c5d05b96df6c6cacde3fdc53e8e6cb200d 2013-11-14 20:28:12 -05:00
Behdad Esfahbod
67fef70631 Support decode/encoding of unknown glyf hinting instructions
New instructions can be defined in the prep program.  We don't
check that the "unknown" instruction was actually defined.  Just
pass it through.

Fixes ttx with Skia.ttf on the Mac OS X.

Fixes https://github.com/behdad/fonttools/issues/21
2013-11-14 20:25:21 -05:00
Behdad Esfahbod
4ff7712131 Restructure code
In anticipation of upcoming change.
2013-11-14 20:16:41 -05:00
Behdad Esfahbod
4fab60ca5b Remove unused instruction name propagation
No functional change whatsoever.
2013-11-14 20:14:10 -05:00
Behdad Esfahbod
978b1ea877 Indent 2013-11-14 19:18:11 -05:00
Behdad Esfahbod
cf75a7c5d0 Fixup ttx file-name mangling after eac107f1 2013-11-14 18:59:41 -05:00
Behdad Esfahbod
246301acc9 Fixup hhea recalc after 9222b8ef93fd6b41f9c4dcf152593cd0c80f0ba4 2013-11-14 18:55:35 -05:00
Roozbeh Pournader
c360f04754 Separate out the logic of computing advanceWidthMax from minLeftSideBearing, minRightSideBearing, and xMaxExtent for minimal fonts. 2013-11-14 18:53:20 -05:00
Roozbeh Pournader
dec666aa05 Only modify the loca table is there is such a table. 2013-11-14 18:52:15 -05:00
Behdad Esfahbod
7bdf6d39fc Minor 2013-11-14 17:27:15 -05:00
Behdad Esfahbod
9222b8ef93 Consider composite glyphs when recalcing 'hhea' values
Fixes https://github.com/behdad/fonttools/issues/20
2013-11-14 17:22:47 -05:00
Behdad Esfahbod
335f182a58 Consider advance width of all glyphs when recalcing 'hhea'
Part of https://github.com/behdad/fonttools/issues/20
2013-11-14 17:18:56 -05:00
Behdad Esfahbod
cd4fac4f4a Avoid overflow when compiling glyf table
https://github.com/behdad/fonttools/pull/25
2013-11-14 17:07:35 -05:00
Behdad Esfahbod
c55d592661 Remove unreachable code 2013-11-14 17:07:16 -05:00
Samyak Bhuta
77219e595c Removed README.txt. 2013-11-13 19:24:21 +05:30
Samyak Bhuta
dc9b87e342 Updated README.md
- Add project discription from original fontforge repository as citation.
2013-11-13 19:22:33 +05:30
Samyak Bhuta
bbcb1d5a49 Updated README. Added 'community' section. 2013-11-13 19:04:15 +05:30
Samyak Bhuta
380360814b README in markdown format.
- Reformatted the text
- Added sections and links
- Original greetings and author details kept intact.
2013-11-13 19:00:12 +05:30