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.
- GPOS Lookup Types 3, 4, 5 and 6 are probably not supported properly.
- LookupFlag.RightToLeft is not supported.
- 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.
Things that need more testing to make sure that they are working correctly:
- GPOS Lookup Types 3, 4, 5 & 6.
- init, medi, fina and isol feature support.
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
You can get the latest beta version as a bundle here, you can check out the current development version with Subversion at http://svn.typesupply.com/packages/compositor or you can browse the source code here.
