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