<!DOCTYPE html>
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>A number of times in the past I have expressed concerns about the
      relation between TT instructions and variable composites. With the
      move to VARC I have chosen to concentrate on painting a workable
      picture for hinting on the CFF2 side of things and not raise
      objections (in the voting sense) for the glyf side. However, I
      still think leaving things on that side as they are in the working
      draft would be a bit criminal on our parts. <br>
    </p>
    <p>My ability to discuss this stuff is greatly hampered by my lack
      of experience and, frankly, understanding of TT-instructions.
      However, I've discussed the current state of things within our
      team and will try to raise some questions here.</p>
    <p>It's been suggested to me that glyf-component instructions are
      applied in the context of any composite -- there is no mechanism
      for selectively "turning them off". At the same time, component
      instructions are very unlikely to work in the face of skews or
      rotations, and may not even work in the face of scaling. <br>
    </p>
    <p>There is also support in glyf-composites for limited
      composite-level instructions:
<a class="moz-txt-link-freetext" href="https://learn.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description">https://learn.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description</a>
      . <br>
    </p>
    <p>Just these three observations would seem to raise some questions:</p>
    <ol>
      <li>Should there not be a VARC component flag that, when pulling
        components from a glyf table suppresses the instructions of that
        component?</li>
      <li>Should applications of that flag cancel the instructions of
        nested composites as well?</li>
      <li>If there is not such a flag, and perhaps if there is, should
        instructions be cancelled when certain total (i.e.
        top-to-bottom) transformations are in play? Or automatically
        cancelled for the portions of the compositing tree in which they
        are in play?<br>
      </li>
      <li>What are those problematic transformations -- anything but
        translation? Anything but translation and scaling?</li>
      <li>Do there need to be flags to indicate what transformations a
        set of instructions are "immune" to? Since those instructions
        will be atom-level, where would those flags live?</li>
      <li>Should there be a VARC-component flag indicating that what is
        being loaded is not an individual component but the (limited)
        composite-level TT instructions for this glyph? (The natural
        home for those instructions being in the glyph with the same
        GID, as same-GID-loading is already supported by the spec?)</li>
      <li>Whether or not any of the above results in spec changes,
        should there not be guidance about how to hint glyf-based VARC
        fonts, including tradeoffs between "componentizing" and hinting?
        Especially given that it appears that a major reason that
        glyf-level transformations were avoided in the past is that they
        didn't work well with instructions, and the major selling point
        and emphasis of VARC is aggressive componentizing? <br>
      </li>
    </ol>
    <p>"April is coming."</p>
    <p>Skef<br>
    </p>
  </body>
</html>