opentypejs/opentype.js

Update docs for Font.getPath to explain what happens with cutout subpaths

开放

#347 创建于 2018年6月4日

 (3 条评论) (5 个反应) (0 位负责人)JavaScript (512 个派生)batch import
help wanted

仓库指标

星标
 (4,170 个星标)
PR 合并指标
 (30 天内没有已合并 PR)

描述

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 fillrule attribute 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?

贡献者指南