[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