Alexei Podtelezhnikov <[email protected]> writes: >> >> > these new values. >> > You are looking at the outdated Apple's specifications. Please check >> > with OpenType 1.9 instead: >> > https://learn.microsoft.com/en-us/typography/opentype/spec/tt_instructions#instruction-execution-control >> > >> > Specifically, "INSTCTRL[ ] can only be executed in the CVT program." >> > There are further clarifications >> > https://learn.microsoft.com/en-us/typography/cleartype/truetypecleartype#instctrl >> > >> > Best, >> > Alexei >> >> I don't see anything there that contradicts the behavior of my >> interpreter, though. >> >> The control value program executes _NO_ INSTCTRL[] instructions >> whatsoever, yet the reference points and the freedom vector are reset >> after execution. > > How about this: > https://learn.microsoft.com/en-us/typography/opentype/spec/prep? > "The Control Value Program consists of a set of TrueType instructions > that will be executed... before each glyph is interpreted."
It is executed before each glyph is instructed. AFAIU changes made to the graphics state inside prep should be reflected in the graphics state prior to each glyph being instructed, given that INSTCTRL[] is not called to set bit 2 inside the preprogram. However, FreeType does not do that with at least the freedom vector and reference points.
