109 Commits

Author SHA1 Message Date
Sascha Brawer
d05617b4bd [AAT] Support prop table with glyph properties 2017-08-17 11:09:53 -07:00
Sascha Brawer
77876e8df4 [AAT] Add table definitions for lcar table
After this change, fonttools is able to dump the `lcar` table of
the AppleChancery font to XML. However, the resulting XML cannot
be compiled back to TrueType, yet. So, something is still broken
with the implementation of AAT lookups. Need to do more testing
before the support for table `lcar` can be added to fonttools.
2017-08-16 02:42:55 +02:00
Sascha Brawer
020f7391ef [morx] Parametrize AATLookup value type in otData 2017-08-14 21:34:15 +02:00
Sascha Brawer
7f774ae84c [morx] Change MorphType to uint8, to comply with the spec 2017-08-14 21:34:15 +02:00
Sascha Brawer
f56b71937d Add missing parts from morx branch
After this change, the `morx` table in Zapfino.ttf can be ttx'ed again.
2017-08-14 21:34:15 +02:00
Rob McKaughan
b8e2d90cda Add AxisValueFormat4 for STAT table v1.2 from OT v1.8.2. 2017-07-24 16:12:31 -07:00
Miguel Sousa
4a8c1511ec [otData] Label AxisNameID as NameID 2017-07-14 00:08:52 -07:00
Behdad Esfahbod
0cc1721b8d [MVAR] Update for OT 1.8.1 rename 2017-01-10 11:01:06 -08:00
Behdad Esfahbod
b4d53811e9 Implement MVAR table 2016-12-18 21:55:45 -06:00
Denis Moyogo Jacquerye
250017289b Revert "[STAT] It was decided to NOT bump minor version..."
This reverts commit 06de8ce81824f737a1e35bfb00b1f68db767037e.
2016-12-12 16:42:55 +00:00
Behdad Esfahbod
06de8ce818 [STAT] It was decided to NOT bump minor version...
...since no one implements STAT so far.  So, version stays at 1.0.
2016-12-07 18:11:50 -08:00
Behdad Esfahbod
9ca34a08ec [STAT] Update for version 1.1; hasn't made it into spec yet! 2016-12-04 21:22:47 -08:00
Sascha Brawer
8b78a7890f [STAT] Fix unit tests and implementation of STAT table
Still need to look at one failing test case. Disabling it for now.
2016-12-02 15:26:49 -08:00
Sascha Brawer
84da076bb9 [STAT] Fix one test case 2016-12-02 14:54:03 -08:00
Behdad Esfahbod
d80bb58723 More STAT 2016-12-02 14:14:48 -08:00
Behdad Esfahbod
913b3c477c Finish STAT table
Test needs fix.
2016-12-02 14:06:13 -08:00
Sascha Brawer
59368c424a WIP: Implement STAT table 2016-12-02 13:37:42 -08:00
Sascha Brawer
0588502771 Add otConverters.NameID (#708)
When writing XML, this produces a comment with the English name.
If the name ID is missing from the name table, it logs a warning.
2016-10-14 21:04:35 +02:00
Behdad Esfahbod
e9ab61c5b5 [GX] Fix FeatureVariations 2016-09-27 19:49:41 +02:00
Behdad Esfahbod
2f38f4a05a [GX] Fix typo 2016-09-27 19:49:41 +02:00
Behdad Esfahbod
6b564d7d66 [varLib] Add FeatureVariations to GSUB/GPOS
Based on patch from Read Roberts.
2016-09-27 19:49:41 +02:00
Behdad Esfahbod
402d726692 [ot] Change Version to be an integer instead of float
API Change:
This will change XML output for GSUB/GPOS/GDEF/MATH/BASE/JSTF/...
Scripts that set the Version for those to 1.0 or other float values
also need fixing.  A warning is emitted when code or XML needs fix.
2016-09-27 19:49:41 +02:00
Behdad Esfahbod
72fe29359b [varLib] Start building Device table for variations 2016-09-27 19:49:41 +02:00
Behdad Esfahbod
3064985880 VarStore: Remove Reserved field 2016-09-27 19:49:41 +02:00
Behdad Esfahbod
47a7dde070 [varLib] Make VarData.NumShorts automatic 2016-09-27 19:49:41 +02:00
Behdad Esfahbod
f11414c93b [varLib] Implement new VarData, aka. ItemVariationData, table 2016-09-27 19:49:41 +02:00
Behdad Esfahbod
38c88f6996 [varLib] Rename VarTuple to VarRegion 2016-09-27 19:49:41 +02:00
Behdad Esfahbod
e7163eddb0 [varLib] Rename VarTupleList to VarRegionList
Aka. ItemVariationRegionList.
2016-09-27 19:49:41 +02:00
Behdad Esfahbod
35a401f04d [varLib] Add support for VarIdxMap, aka. DeltaSetIndexMap.
Update HVAR / VVAR to latest draft.
2016-09-27 19:49:41 +02:00
Behdad Esfahbod
c1717224da [varLib] Generate direct HVAR 2016-09-27 19:49:41 +02:00
Behdad Esfahbod
e2da17e032 [opentype-gx/varLib] More work towards VariationStore
And HVAR/VVAR tables.
2016-09-27 19:49:41 +02:00
Behdad Esfahbod
32dd2e9e7e Add a VarStore at the end of GDEF 2016-09-27 19:49:41 +02:00
Behdad Esfahbod
4d7b5f6472 [varLib] Start implementing VariationStore 2016-09-27 19:49:41 +02:00
Behdad Esfahbod
754a20d987 Implement lazy array for loading otData-driven arrays
Speeds up subsetting of GPOS table with many pairs by huge factor
(counted 5).
2015-07-02 18:00:41 -07:00
Sascha Brawer
5bd9ade399 [GX] Remove ‘fvar’ table definition from otTables.py
There now is a Python implementation of variation axes, because this
makes it (much) easier to build variable fonts from code. Therefore,
the definitions in otTables.py are not needed anymore.
2015-06-24 15:58:05 +02:00
Behdad Esfahbod
6c83fe4846 Really fix SingleSubst delta math
I had broken this in e06166b83aa82582dab2e011520b1a77f72aa9f9.

Fix that, and other issues.  Since I made that last commit, it has
become clear that SingleSubst works by adding delta and then doing
module 65536.

HarfBuzz was updated for this in 2011:
commit 52ebdff49d13f239efc886de935d47be9860f6e5
Author: Behdad Esfahbod <behdad@behdad.org>
Date:   Tue Sep 27 12:38:16 2011 -0400

    Fix GSUB lookuptype 1 subtype 1 delta wrapping
2015-06-12 10:27:04 -07:00
Behdad Esfahbod
7c9ab300c2 Add standard imports to all python sources
Previously, the trivial files didn't have them.
2015-04-14 17:26:59 -07:00
Behdad Esfahbod
b9ac90a8f9 [GX] Add 'fvar' table support
I might change the table format in the future, but it's functional now.
2015-03-11 15:29:35 -07:00
Behdad Esfahbod
0d5d12e02a Adjust 'feat' table format
As discussed here:
730bedd3d1
2015-01-21 15:46:30 -08:00
Behdad Esfahbod
730bedd3d1 [AAT] Add support for 'feat' table
Reusing the otData machinery.

See discussion at:
https://github.com/behdad/fonttools/issues/178
https://github.com/behdad/fonttools/pull/180
2014-09-30 19:04:16 -04:00
Behdad Esfahbod
9e482332ba Fix subtable-split logic
Though, the split logic isn't implemented for GPOS, so I have not
been successful in actually exercising it so far.
2013-12-17 05:46:51 -05:00
Behdad Esfahbod
f952a22af7 Implement MATH table
Fixes https://github.com/behdad/fonttools/issues/67
2013-12-09 00:40:48 -05:00
Behdad Esfahbod
3fa26d783f py23 Use fixedToFloat() for fixed version numbers 2013-11-28 18:53:30 -05:00
Behdad Esfahbod
32c10eecff py23 from __future__ import division and adjust divisions 2013-11-28 17:32:42 -05:00
Behdad Esfahbod
3ac9e63fce Load / save FeatureParamSize decipoints values as float 2013-11-26 19:42:55 -05:00
Behdad Esfahbod
9e1bd2d0b4 Implement FeatureParams
All types of FeatureParams are correctly handled now.

The only thing not handled is broken fonts generated with the
old AFDKO that have their FeatureParams offset computed wrong.
I don't currently plan on handling those.

Fixes https://github.com/behdad/fonttools/issues/38
2013-11-26 19:23:08 -05:00
Behdad Esfahbod
f41056dc76 Implement MarkFilteringSet in Lookup 2013-11-25 05:18:00 -05:00
Behdad Esfahbod
5b9cabcb9a Implement GDEF MarkGlyphSetsDef
Aka. "Mark filtering sets".

Fixes https://github.com/behdad/fonttools/issues/39
2013-11-25 04:01:56 -05:00
Behdad Esfahbod
7d130307e6 Simplify converter mapping for DeltaValue 2013-11-24 16:13:00 -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