TKE_Text_Font
Opcode
| ASCII | F |
| Hexadecimal | 46 |
| Decimal | 70 |
Operands
Byte mask, Byte value, [Byte mask_high, Byte value_high]
[Word mask_high2, Word value_high2]
[Byte names_length], [(names_length)xByte names],
[Float size, Byte size_units],
[Float size_tolerance, Byte tolerance_units],
[Byte transforms], [Float rotation], [Float slant], [Float width_scale],
[Float extra_space, Byte extra_space_units], [Float line_spacing],
[Float greeking_limit, Byte greeking_limit_units],
[Byte greeking_mode],
[Byte renderer]
| mask | bitmask of options. |
| value | bitmask indicating which options are set on. |
| mask_high | if high bit is set in the first mask byte, this set of bits is added to mask. |
| value_high | if high bit is set in the first mask byte, this set of bits is added to value. |
| mask_high2 | if high bit is set in the second mask byte, this set of bits is added to mask. |
| value_high2 | if high bit is set in the second mask byte, this set of bits is added to value. |
| names_length | length of names string |
| names | one or more font names to attempt to use |
| size | desired size of text |
| size_units | enumeration describing how size is interpreted |
| size_tolerance | indicates acceptable size difference for fixed-size bitmap fonts |
| tolerance_units | enumeration describing how tolerance is interpreted |
| transforms | enumeration indicating how text string is affected by modelling matrix |
| rotation | rotation of characters relative to the horizontal (in degrees). value of -1 indicates characters are rotated to lie along the text path |
| slant | amount of slant applied to characters (in degrees) |
| width_scale | horizontal scaling applied to the entire text string |
| extra_space | additional space added between characters |
| extra_space_units | enumeration describing how extra space is interpreted |
| line_spacing | distance between baseline of multi-line strings, as a multiple of the font height |
| greeking_limit | limit below which text may be replaced by simple geometry |
| greeking_limit_units | enumeration describing how greeking limit is interpreted |
| greeking_mode | enumeration describing to handle text below the greeking limit |
| renderer | enumeration describing limitation on font type |
Notes
Text attributes which are set on the currently open segment. These attributes are applied to any text that lies in this part of the segment tree.
Mask/value bits
| 00000001 | Names |
| 00000002 | Size |
| 00000004 | Size Tolerance |
| 00000008 | Transforms |
| 00000010 | Rotation |
| 00000020 | Slant |
| 00000040 | Width_Scale |
| 00000080 | second byte required |
| 00000100 | Extra Space |
| 00000200 | Line Spacing |
| 00000400 | Outline preferred |
| 00000800 | Underline preferred |
| 00001000 | Strikethrough preferred |
| 00002000 | Overline preferred |
| 00004000 | Force non-proportional spacing |
| 00008000 | second word required |
| 00010000 | Greeking Limit |
| 00020000 | Fill Edges |
| 00040000 | Bold desired |
| 00080000 | Italic desired |
| 00100000 | Renderer specified |
| 00200000 | Greeking Mode specified |
Size units options
| 0 | Object space size |
| 1 | Screen space size |
| 2 | Window space size |
| 3 | Points |
| 4 | Pixels |
| 5 | Percentage (only used for Size Tolerance) |
Transform options
| 0 | Only position of each character is transformed |
| 1 | Entire character glyphs are transformed |
Greeking mode options
| 0 | Greeked text is not drawn |
| 1 | Greeked text is replaced with a simple grid of lines |
| 2 | Greeked text is replaced with a halftone filled box |
Renderer options
| 0 | Use any available fonts |
| 1 | Limit choices to driver-specific fonts |
| 2 | Limit choices to Truetype (or similar, such as Type1) fonts |
| 3 | Limit choices to Defined (stroked) fonts |