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