Graphics State
Contents
- Introduction
- auto flip
- control value cut-in
- delta base
- delta shift
- dual projection vector
- freedom vector
- instruct control
- loop
- minimum distance
- projection vector
- round state
- rp0
- rp1
- rp2
- scan control
- single_width_cut_in
- single_width_value
- zp0
- zp1
- zp2
Most of the graphics state variables have a default value as shown below. That value is established the first time a particular font is accessed and again at the start of interpretation of any glyph.
It is possible to change the default values of the graphics state variables using instructions. If the value is changed in the control value program, that value becomes the new default value. If the value of a state variable is changed by instructions associated with a particular glyph, the new value is not a new default value and will hold only for that glyph.
Default TRUE Set with FLIPOFF[] FLIPON[] Affects MIRP[]
Controls whether the sign of control value table entries will be changed to match the sign of the actual distance measurement with which it is compared. Setting auto flip to TRUE makes it possible to control distances measured with or against the projection vector with a single control value table entry. When auto flip is set to FALSE, distances must be measured with the projection vector.
Default 17/16 pixels (F26Dot6) Set with LCVTCI[] Affects MIAP[] MIRP[]
Limits the regularizing effects of control value table entries to cases where the difference between the table value and the measurement taken from the original outline is sufficiently small.
Default 9 Set with SDB[] Affects DELTAP1[] DELTAP2[] DELTAP3[] DELTAC1[] DELTAC2[] DELTAC3[]
Establishes the base value used to calculate the range of point sizes to which a given DELTAC[] or DELTAP[] instruction will apply. The formulas given below are used to calculate the range of the various DELTA instructions.
DELTAC1 DELTAP1 (delta_base) through (delta_base + 15) DELTAC2 DELTAP2 (delta_base + 16) through (delta_base + 31) DELTAC3 DELTAP3 (delta_base + 32) through (delta_base + 47)
Default 3 Set with SDS[] Affects DELTAP1[] DELTAP2[] DELTAP3[] DELTAC1[] DELTAC2[] DELTAC3[]
Determines the range of movement and smallest magnitude of movement (the step) in a DELTAC[] or DELTAP[] instruction. Changing the value of the delta shift makes it possible to trade off fine control of point movement for range of movement. A low delta shift favors range of movement over fine control. A high delta shift favors fine control over range of movement. The step has the value 1/2 to the power delta shift. The range of movement is calculated by taking the number of steps allowed (16) and multiplying it by the step.
The legal range for delta shift is zero through six. Negative values are illegal.
Default none Set with SDPVTL[] Affects IP[] GC[] MD[] MDRP[] MIRP[]
A second projection vector set to a line defined by the original outline location of two points. The dual projection vector is used when it is necessary to measure distances from the scaled outline before any instructions were executed.
Default x-axis Set with SFVTCA[] SFVTL[] SFTPV[] SVTCA[] SFVFS[] Affects ALIGNPTS[] ALIGNRP[] DELTAP1[] DELTAP2[] DELTAP3[] IP[] MDAP[] MDRP[] MIAP[] MIRP[] MSIRP[] ROUND[] SCFS[] SHC[] SHPIX[] SHZ[] UTP[]
A unit vector that establishes an axis along which points can move.
Default 0 Set with INSTCTRL[] Affects all instructions
Makes it possible to turn off instructions under some circumstances. When set to TRUE, no instructions will be executed.
Default 1 Set with SLOOP[] Affects ALIGNRP[] FLIPPT[] IP[] SHP[] SHPIX[]
Makes it possible to repeat certain instructions a designated number of times. The default value of one assures that unless the value of loop is altered, these instructions will execute one time.
Default 1 pixel (F26Dot6) Set with SMD[] Affects MDRP[] MIRP[]
Establishes the smallest possible value to which a distance will be rounded.
Default x-axis Set with SPVTCA[] SPVTL[] SVTCA[] SPVFS[] Affects ALIGNPTS[] ALIGNRP[] DELTAP1[] DELTAP2[] DELTAP3[] GC[] IP[] MD[] MDAP[] MDRP[] MIAP[] MIRP[] MSIRP[] SCFS[] SHC[] SHP[] SHZ[]
A unit vector whose direction establishes an axis along which distances are measured.
Default 1 (grid) Set with RDTG[] ROFF[] RTDG[] RTG[] RTHG[] RUTG[] SROUND[] S45ROUND[] Affects EVEN[] ODD[] MDAP[] MIAP[] MDRP[] MIRP[] ROUND[]
Determines the manner in which values are rounded. Can be set to a number of predefined states or to a customized state with the SROUND or S45ROUND instructions.
Default 0 Set with SRP0[], MDRP[], MIAP[], MSIRP[] Affects ALIGNRP[] MDRP[] MIRP[] MSIRP[]
The first of three reference points. References a point number that together with a zone designation specifies a point in either the glyph zone or the twilight zone.
Default 0 Set with SRP1[], MDAP[], MDRP[], MIRP[] Affects IP[] SHC[] SHP[] SHZ[]
The second of three reference points. References a point number that together with a zone designation specifies a point in either the glyph zone or the twilight zone.
Default 0 Set with SRP2[], MDRP[], MIRP[] Affects IP[] SHC[] SHP[] SHZ[]
The third of three reference points. References a point number that together with a zone designation specifies a point in to either the glyph zone or the twilight zone.
Default FALSE Set with SCANCTRL[]
Determines whether the interpreter will activate dropout control for the current glyph. Use of the dropout control mode can depend upon the currently prevailing combination of the following three conditions:
- Is the glyph rotated?
- Is the glyph stretched?
- Is the current pixel per em setting less than a specified threshold?
It is also possible to block dropout control if one of the above conditions is false.
Default 0 pixels (F26Dot6) Set with SSWCI[] Affects MDRP[] MIRP[]
The distance difference below which the interpreter will replace a CVT distance or an actual distance in favor of the single width value.
Default 0 pixels (F26Dot6) Set with SSW[] Affects MDRP[] MIRP[]
The value used in place of the control value table distance or the actual distance value when the difference between that distance and the single width value is less than the single width cut-in.
Default 1 Set with SZP0[] SZPS[] Affects ALIGNPTS[] ALIGNRP[] DELTAP1[] DELTAP2[] DELTAP3[] FLIPPT[] FLIPRGOFF[] FLIPRGON[] IP[] ISECT[] MD[] MDAP[] MDRP[] MIAP[] MIRP[] MSIRP SHC[] SHP[] UTP[]
The first of three zone pointers. Can be set to reference either the glyph zone (Z0) or the twilight zone (Z1).
Default 1 Set with SZP1[] SZPS[] Affects ALIGNPTS[] ALIGNRP[] IP[] ISECT[] MD[] MDRP[] MIRP[] MSIRP[] SDPVTL[] SFVTL[] SHC[] SHP[] SHZ[] SPVTL[]
The second of three zone pointers. Can be set to reference either the twilight zone (Z0) or the glyph zone (Z1).
Default 1 Set with SZP2[] SZPS[] Affects GC[] IP[] ISECT[] IUP[] SCFS[] SDPVTL[] SFVTL[] SHC[] SHP[] SHPIX[] SPVTL[]
The third of three zone pointers. Can be set to reference either the twilight zone (Z0) or the glyph zone (Z1).