<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>In the August meeting in Portland (and in some exchanges before
that) some questions were raised about the feasibility of hinting
cubic splines in glyf with the existing TT instruction set. One
response was that this was not likely to be a problem as it is
relatively rare in practice to move quadratic control points (as
opposed to on-curve points). The idea being that the fact that a
cubic has two control points rather than one shouldn't be an
issue.</p>
<p>Some folks on our team at Adobe decided to look into this a bit
more, although not at great depth. From what we can tell, when the
convention of only moving on-curve points works, that is typically
because of a subsequent call to of the IUP instruction in one or
both dimensions. That instruction is described <a
href="https://developer.apple.com/fonts/TrueType-Reference-Manual/RM05/Chap5.html#IUP">this
way</a>:</p>
<blockquote>
<p>Interpolates untouched points in the zone referenced by zp2 to
preserve the original relationship of the untouched points to
the other points in that zone. <br>
</p>
</blockquote>
<p>Unfortunately the documentation goes on to say:</p>
<blockquote>
<p>Considers the reference glyph outline contour by contour,
moving any untouched points that fall sequentially between a
pair of touched points.</p>
</blockquote>
<p>If neither cubic control point is hinted, neither will fall
sequentially between a pair of touched points, and therefore cubic
control points will typically not move in relation to how their
adjacent on-curve points move.</p>
<p>It may be possible to update the instruction to also operate on
pairs of untouched points sequentially between touched points, or
to add a new instruction that does so, but only if there are not
other cases arising from quadratics with the same pattern. More
importantly, the heuristics for the quadratic case -- how the
instruction moves the control point in relation to its adjacent
quadratic on-curve points -- don't obviously apply to the cubic
case. This is not just because there is "another point". How one
cubic control point should move in a given case can greatly depend
on the position of the other control point. In general the
"behavior" of cubics is more complex than that of quadratics --
they're stranger creatures. <br>
</p>
<p>Anyway, if all this is accurate then hinting is likely to be a
problem if cubics are added to glyf and TT hinting is still
considered to be supported in glyphs that contain them, unless new
instructions are also added.</p>
<p>Skef<br>
</p>
</body>
</html>