[MPEG-OTSPEC] VARC, glyf, and TT-instructions
Skef Iterum
skef at skef.org
Wed Jan 24 23:50:12 CET 2024
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.
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.
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.
There is also support in glyf-composites for limited composite-level
instructions:
https://learn.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description
.
Just these three observations would seem to raise some questions:
1. Should there not be a VARC component flag that, when pulling
components from a glyf table suppresses the instructions of that
component?
2. Should applications of that flag cancel the instructions of nested
composites as well?
3. 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?
4. What are those problematic transformations -- anything but
translation? Anything but translation and scaling?
5. 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?
6. 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?)
7. 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?
"April is coming."
Skef
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.aau.at/pipermail/mpeg-otspec/attachments/20240124/50ddf105/attachment-0001.html>
More information about the mpeg-otspec
mailing list