2631 Commits

Author SHA1 Message Date
Sascha Brawer
0dbb2fdcc0 [feaLib] Parse lookupflag statements
They do not have any impact yet, this change is just for the parsing.
2015-12-10 13:06:28 +01:00
Behdad Esfahbod
ef03a3be47 Merge fd2ft, rename it to mtiLib
Implements Monotype Imaging's OpenType_Table_Source format as
specified at:

  http://monotype.github.io/OpenType_Table_Source/otl_source.html
2015-12-10 12:57:37 +01:00
Behdad Esfahbod
72be745587 Err if space is found in glyph name 2015-12-10 12:54:21 +01:00
Sascha Brawer
e0a3350406 [feaLib] Implement GPOS type 8: Chaining contextual positioning 2015-12-09 23:53:20 +01:00
Sascha Brawer
cb0adb98b9 [feaLib] Parse GPOS type 8: Chaining contextual positioning
No output is generated yet, this change is just on the parser.

The OpenType Feature File specification is surprisingly vague about
the exact syntax of chaining contextual positioning rules, so I expect
that we will have to iterate on this parser. However, the test case
in parser_test.py gets recognized by `makeotf`, so the current
implementation is unlikely to be completely wrong.
2015-12-09 23:04:36 +01:00
Cosimo Lupo
4ae2604dca Merge pull request #397 from rsheeter/master
Experimental support for Google-style color bitmap fonts
2015-12-09 21:38:28 +00:00
Rod Sheeter
9927a91653 Remove change to _dict_subset (meant to be local/test only). Add a cmap fmt 0 to color font test file. 2015-12-09 13:32:35 -08:00
Sascha Brawer
a364f60d1d [feaLib] Change semantics of markClass to also define a glyphclass
While not really documented in the OpenType Feature File specification,
the AFDKO makeotf tool handles the `markClass` statement this way.
Also, some examples in the specification seem to imply this semantics.
2015-12-09 22:15:52 +01:00
Rod Sheeter
905eb831b9 Add Google-style color font test and make _dict_subset more forgiving. 2015-12-09 13:05:16 -08:00
Behdad Esfahbod
0934cee03f Reduce use of reduce(), makes python3 happy 2015-12-09 20:07:45 +01:00
Behdad Esfahbod
52b000d01e Rewrite tokenization to use a single object
Allows for adding meaningful error messages.
2015-12-09 20:06:10 +01:00
Cosimo Lupo
812609e90c [subset] fix logic of EBLC subsetting; avoid KeyError in EBDT subsetting 2015-12-09 09:42:15 -08:00
Rod Sheeter
9189d1a1f0 Experimental support for Google-style color bitmap fonts 2015-12-09 09:42:15 -08:00
Behdad Esfahbod
735370b356 Remove one use of pack() 2015-12-09 18:11:54 +01:00
Sascha Brawer
c2c033d3cf [feaLib] Implement GPOS type 6: Mark-to-mark attachment positioning 2015-12-09 17:56:47 +01:00
Behdad Esfahbod
e25b2f0b1c Rename parseGlyph[s] to makeGlyph[s] 2015-12-09 17:51:06 +01:00
Behdad Esfahbod
55f0822221 Allow parsing GSUB/GPOS without script / feature lists 2015-12-09 17:48:30 +01:00
Sascha Brawer
2af0adde6c [feaLib] Parse Mark-to-mark attachment positioning statements
No output is produced yet; this will come in an upcoming change.
2015-12-09 17:14:13 +01:00
Behdad Esfahbod
8d96a3b998 Implement GDEF 2015-12-09 17:03:12 +01:00
Sascha Brawer
96223b8aee [feaLib] Implement GPOS type 5: Mark-to-ligature attachment positioning 2015-12-09 16:51:15 +01:00
Cosimo Lupo
91aaaad8bd Merge pull request #431 from anthrotype/travis-container
use faster, container-based Travis infrastructure
2015-12-09 13:06:21 +00:00
Behdad Esfahbod
79cdb5aa19 Implement kernset 2015-12-09 14:00:09 +01:00
Cosimo Lupo
4c49cc6b6e requirements.txt: change commit hash to point to latest google/brotli HEAD
this is in order to compile brotli with old gcc without `-std=c++0x` flag
2015-12-09 12:59:47 +00:00
Sascha Brawer
d622f99982 [feaLib] Clean up class names of Abstract Syntax Tree statements
The class names of tree nodes for substitution and positioning rules
are now consistent with `builder.py`, which in turn is consistent with
`otTables.py`.
2015-12-09 13:58:05 +01:00
Cosimo Lupo
59ddee620e .travis.yml: switch container-based infrastructure; don't install gcc++ 4.8 as it requires sudo 2015-12-09 12:57:25 +00:00
Behdad Esfahbod
7bf04190c9 Implement MarkToLigature positioning 2015-12-09 13:44:20 +01:00
Sascha Brawer
5b1b1d17f6 [feaLib] Restructure MarkBasePosBuilder in preparation of MarkLigPosBuilder
The upcoming MarkLigPosBuilder will have some parts in common with
MarkBasePosBuilder. Move these common parts into a helper method,
so that MarkLigPosBuilder will be able to call them.

Also, clean up the structure of MarkBasePosBuilder.
2015-12-09 13:23:50 +01:00
Sascha Brawer
7e846691e4 [feaLib] Consistently name LookupBuilders after their OpenType subtable class 2015-12-09 12:59:20 +01:00
Sascha Brawer
652bbeb51b [feaLib] Centralize how lookups are built from subtables 2015-12-09 12:51:01 +01:00
Sascha Brawer
320a4a57c6 [feaLib] Centralize the building of coverage tables 2015-12-09 12:30:57 +01:00
Behdad Esfahbod
32b97ccab2 Implement MarkBasePos and MarkMarkPos 2015-12-09 12:21:17 +01:00
Behdad Esfahbod
6d8ee2a4f3 Add makeClassDef() 2015-12-09 11:50:53 +01:00
Behdad Esfahbod
e82695c4a7 Fix makeCoverage() 2015-12-09 11:48:56 +01:00
Sascha Brawer
0532ec85d3 [feaLib] Parse GPOS type 5: Mark-to-Ligature Attachment Positioning
No output is produced yet, this is just the change on the parser.
2015-12-09 10:40:49 +01:00
Sascha Brawer
25acebd824 [feaLib] Minor parser refactoring in preparation for GPOS type 5
GPOS type 5 has much in common with GPOS type 4, so we want to share
the common parsing code.
2015-12-08 23:46:04 +01:00
Behdad Esfahbod
0848a0ce56 Add makeAnchor() 2015-12-08 23:40:41 +01:00
Behdad Esfahbod
995b4dca42 Accept Anchor Format2 2015-12-08 23:37:15 +01:00
Behdad Esfahbod
beb0143612 Separate kernset from pair 2015-12-08 23:26:05 +01:00
Behdad Esfahbod
9e28a7aaa1 Implement CursivePos 2015-12-08 23:25:12 +01:00
Behdad Esfahbod
515f0b3016 Implement PairPos Format1 2015-12-08 23:09:24 +01:00
Behdad Esfahbod
5ac9067bcd Implement PairPos Format2 2015-12-08 22:47:37 +01:00
Sascha Brawer
0fbbe037bf [feaLib] Implement GPOS type 4: Mark-to-Base Attachment Positioning 2015-12-08 22:28:02 +01:00
Behdad Esfahbod
941d735760 Sanity-check ValueRecord fields 2015-12-08 22:22:33 +01:00
Behdad Esfahbod
e717b1f157 Implement SinglePos
Also, skip unimplemented tables.
2015-12-08 20:47:53 +01:00
Behdad Esfahbod
6c4d14dbce Enable writing of Count values that are never set
This can happen with empty MarkMark / MarkBase tables.
2015-12-08 20:41:54 +01:00
Behdad Esfahbod
8128b509a4 [subset] Augment ContextHelper
As needed in my Monotype OpenType format parser.  I'm not using the object
directly from subset module, but pushing back my changes here, in the hope
that we move this object to ttLib proper soon.
2015-12-08 20:40:42 +01:00
Behdad Esfahbod
e7b05e2e41 Fixup Chained Pos 2015-12-08 20:00:24 +01:00
Behdad Esfahbod
2bf82e5534 Support multiple subtables per lookup 2015-12-08 19:59:48 +01:00
Cosimo Lupo
83d2769f34 README.md: fix typo 2015-12-08 18:37:55 +00:00
Cosimo Lupo
cade98932b Merge pull request #430 from anthrotype/davelab6-documentation-tweaks
Dave's documentation tweaks
2015-12-08 18:36:16 +00:00