deflfo(3G)deflfo(3G)NAMEdeflfo - defines a raster font capable of accommodating large rasters and
multi-byte character id's
FORTRAN 77 SPECIFICATION
subroutine deflfo(n, nc, chars, nr, raster)
integer*4 n, ht, nc, nr
integer*4 chars(5*nc), raster(nr)PARAMETERS
n expects the value to use as the identifier for this raster font.
The default font is a fixed-pitch ASCII font with a height of
15, width of 9, character values 0 through 127 defined, and is
specified by a font identifier of 0. Font 0 cannot be
redefined.
nc expects the number of elements in the chars array.
chars expects an array of 5 by nc four-byte integers. Since parts of
certain elements need to be set, declare a ten by nc/2 array of
two-byte integers, and then EQUIVALENCE the new array to the
chars array.
First element of each row expects the integer value for for this
character. When this value is encountered by chstr or lcharst
this character is drawn.
Second element expects the element number of raster at which the
bitmap data for this character begins. Element numbers start at
zero.
Third element, high half-word expects the number of columns in
the bitmap that contain set bits (character width). Third
element, low half-word expects the number of rows (character
height) in the bitmap of the character (including ascender and
descender).
Fourth element, high half-word expects the number of bitmap
columns between the start of the character's bitmap and the
start of the character. Fourth element, low half-word expects
the number rows between the character's baseline and the bottom
of the bitmap. For characters with descenders (e.g., g) this
value is a negative number. For characters that rest entirely
on the baseline, this value is zero.
Fifth element, high half-word expects the number of pixels to
move in the x-direction after this character is displayed.
Fifth element, low half-word expects the number of pixels to
move in the y-direction after this character is displayed.
Page 1
deflfo(3G)deflfo(3G)
nr expects the number of 16-bit integers in raster.
raster expects a one-dimensional array containing all the bitmap data
for the characters in the font. The bitmap data for each
character is a set of consecutive, 16-bit integers, comprising
the bit mask for the character from left to right, bottom to
top. For characters of width greater than 16, the rows of a
bitmap span more than one array element, however, each new row
in the character bitmap must start with its own array element.
The number of 16-bit integers per row in a character's bitmap is
(w+15)/16. The total number of 16-bit integers in a character's
raster definition is h*((w+15)/16).
Bit 15 of each element is left-most when displayed. Bits that
are '1' are drawn, bits that are '0' are masked.
DESCRIPTIONdeflfo defines a new raster font, or adds/replaces character definitions
in the current raster font. If the font did not exist, it is created.
If it did exist, the character descriptions in the current call replace
any currently defined characters of the same value.
deflfo and defras share the same name space for font id's, so programmers
should beware of collisions. Also, raster fonts initially defined with
defras may not augment their character sets via subsequent calls to
deflfo.
If deflfo is called with nc set to zero, the font is deleted.
SEE ALSO
charst, cmove, font, getcpo, getdes, getfon, gethei, lchstr, lstwid,
strwid
NOTE
This routine is available only in immediate mode.
Page 2