< Back to opcode index
HSF Opcode Definition
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 |
top_level:3