opentype.js
opentype.js copied to clipboard
Update docs for Font.getPath to explain what happens with cutout subpaths
Right now the API docs for Font.getPath in the README.md do not explain what happens with paths that include cutout subpaths (the letter O being an obvious candidate). The OpenType spec itself allows for three possible cases:
- CFF/Type2 outlines rely on crossing number, so any subpath B contained by outermost subpath A is a cutout, any subpath C inside subpath B is a fill, any subpath D inside C is a cutout, etc.
- TTF outlines rely on path direction, so in the above example B is only a cutout for A if either A is defined clockwise and B is defined counter-clockwise.
- SVG outlines rely on "literally whichever you want" because glyphs are specified using SVG1.1 documents which means that the
fillruleattribute can be used to specify whether crossing (fillrule="evenodd") or direction (fillrule="nonzero") is used.
Right now the API docs don't say whether OpenType.js yields the paths as specified in the font, with a way to look up what the cutout algorithm needs to be per glyph, or whether it rewrites paths so that a glyph looks correct when rendered using the currently also unspecified cutout algorithm =)
Can that get an update?
Are you volunteering for a pull request? :)
I am not, because I haven't looked at the code in literally over a year, and am working on too many projects already right now to do a deep dive into the current code before I know which of these things OpenType.js does.
Any updating here?