Compositor is an OpenType layout engine.
This layout engine is not intended to be a high-volume production grade engine. It is meant to be an engine that type designers can use to test their OpenType fonts.
The engine is written in Python.
The engine supports almost all of the GSUB and GPOS tables. The known issues are:
- GSUB Lookup Type 8 (Reverse Chaining Context) is not supported.
- LookupFlag.RightToLeft is not supported.
- GDEF.AttachList is not supported.
- GDEF.LigCaretList is not supported.
- DFLT/dflt tag support may be buggy.
- GPOS Lookup Types 5 & 6 may be, and probably are, buggy.
- init, medi, fina and isol feature support is experimental.
- The Ignore Format and Extend characters, except when they appear at the beginning of a region of text. portion of Unicode word boundary algorithm is not implemented in the boundary detection functions. I don't understand it.
- The old Adobe contextual format is not yet supported.
Any information about these issues, code patches or bug reports would be greatly appreciated.
If you would like to test the engine, FeatureProof is a Mac OS X application built on top of Compositor.
Implementation Notes
The case conversion algorithm is based on the Unicode case conversion information.
The word boundary detection used for case conversion and the positional features is based on the default Unicode word boundary algorithm. No special language dictionaries are used.
Dependencies
- FontTools You'll need to check out the latest version from CVS to get full functionality.
- Numeric FontTools requires the old Numeric package.
Source Code
The source code can be browsed here. Or, you can check it out with Subversion at http://svn.typesupply.com/packages/compositor.
