Hin-Tak Leung <ht...@users.sourceforge.net> writes: > Perhaps let me ask the opposite question: do you really expect setting > projection vector and rp1 in prep to have global effects on every > glyph, and/or setting those in one glyph to have effect on another > glyph?
Only for setting the graphics state (including the projection vector and rp1) in the preprogram to have effect on subsequently instructed glyphs. Here is what the TrueType reference manual says: The graphics state variables all have default values established at the start of interpretation of any font. The default value for a given graphics state variable is reestablished at the start of interpretation of any glyph. In other words, the graphics state has no inter-glyph memory. Changing the value of a graphics state variable while processing an individual glyph will produce a change that remains in effect only for that glyph. To establish a new default value for a graphics state variable, it is necessary to change the value of that variable in the control value program. Changes made in the control value program will apply to all subsequently processed glyphs unless INSTCTRL[] is used to inhibit these new values. followed by a table which lists both the projection and freedom vectors, and all of the reference point registers, as graphics state variables: Graphics state variable Mnemonic Instruction freedom & projection vector Set Vectors To Coordinate Axis SVTCA[a] projection vector Set Projection Vector To Coordinate Axis SPVTCA[a] freedom vector Set Freedom Vector To Coordinate Axis SFVTCA[a] projection vector Set Projection Vector To Line SPVTL[a] freedom vector Set Freedom Vector To Line SFVTL[a] freedom vector Set Freedom Vector To Projection Vector SFVTPV[] dual projection vector Set Dual Projection Vector To Line SDPVTL[] projection vector Set Projection Vector To Line SVPTL[] projection vector Set Projection Vector From Stack SPVFS[] freedom vector Set Freedom Vector From Stack SFVFS[] rp0 Set Reference Point 0 SRP0[] rp1 Set Reference Point 1 SRP1[] rp2 Set Reference Point 2 SRP2[] zp0 Set Zone Pointer 0 SZP0[] zp1 Set Zone Pointer 1 SZP1[] zp2 Set Zone Pointer 2 SZP2[] zp0, zp1, zp2 Set Zone PointerS SZPS[] round state Round To Half Grid RTHG[] round state Round To Grid RTG[] round state Round To Double Grid RTDG[] round state Round Up To Grid RUTG[] round state Round Down To Grid RDTG[] round state set Rounding Off ROFF[] round state Super ROUND SROUND[] round state Super 45 ROUND S45ROUND[] loop Set LOOP SLOOP[] single width cut-in Set Single Width Cut-In SSWCI[] control value cut-in Set Control Value Table Cut-In SCVTCI[] minimum distance Set Minimum Distance SMD[]