<!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>