A set of precompiled text fonts are supplied with AIX Version 4. The set is for all display devices supported by the operating system. Font definitions can be supplied to the LFT by configuring new font files into the system. This is done by issuing the mkfont command. The fonts supplied are compatible with Enhanced X-Windows and AIX Computer Graphics Interface Toolkit/6000.
The text font definition file has four major parts in the following sequence:
The font header is a structure common to all fonts for all display screens. It is a fixed length. This structure is called aixFontInfo and is defined in the aixfont.h file. It contains the following members:
version1 | This field contains the version stamp. |
allExist | For the number of glyph sets indicated below, all glyphs exist. |
drawDirection | Used for stroke fonts only. |
noOverlap | The glyph has a border zone that contains no glyph data. Indicated as true if max(rightSidebearing-characterWidth) <= minbounds->metrics.leftSideBearing. |
constantMetrics | If true, indicates that all glyphs are a constant size. |
terminalFont | True if constant metrics && leftSideBearing = = 0 && rightSideBearing = = characterWidth & & ascent = = fontAscent & & descent = = fontDescent. |
linear | True if firstRow = = lastRow. |
constantWidth | Indicates that all glyphs are the same width. |
inkInside | Indicates whether all character information is contained within a distinct box. |
inkMetrics | Ink metricw ! = bitmap metrics used with terminalFont. |
strokes | Glyphs are strokes, not rasters. |
firstCol | Defines the first Column of ink data within the glyph. |
lastCol | Defines the last column of ink data within the glyph. |
firstRow | Defines the first row of ink data within the glyph. |
lastRow | Defines the last row of ink data within the glyph. |
nProps | Indicates the number of aixFontProp structures to follow. |
lenStrings | Total length in bytes of all the property strings. |
chDefault | Default character. |
fontDescent | Extent below baseline for spacing; minimum for quality typography. |
fontAscent | The extent above baseline for spacing; minimum for quality typography. |
minbounds | MIN of glyph metrics over all characters in the font. |
maxbounds | MAX of glyph metrics over all characters in the font. |
pixDepth | Intensity bits per pixel. |
glyphSets | Number of glyph sets. |
version2 | Version stamp double-check. |
Character descriptions contain offsets into the character data structure, also known as character glyphs. Because the data bytes within the data stream are used to access the character descriptions, there must be 256 entries. Entries for which a character is not defined should be set to offset values of a valid default character. One such valid offset is zero. Because each font has at least one character defined, there is always a first character pointed to by the offset zero, the first character in the glyph data.
The character data, or glyph, can be drawn relative to any point in a given x, y coordinate system. The pel box is the area where the glyph is positioned on the display screen when the font is used. The character description information is contained in the aixCharInfo structure, as defined in the aixfont.h file. This structure contains the following elements:
leftSideBearing | Character origin to the left edge of the raster. Assuming that this character's pel box is referenced from position (x, y), the left vertical edge of the pel box is located at x+ leftSideBearing. |
rightSideBearing | Character origin to the right edge of the raster. Assuming that this character's pel box is referenced from position x, y, the right vertical edge of the pel box is located at x+ rightSideBearing. |
characterWidth | Advance to next character origin. Assuming that this character's pel box is referenced from position (x, y), the origin for the next character is at point (x + characterWidth,y). |
ascent | Baseline to the top edge of the raster. Assuming that this character's pel box is reference from position (x, y), the upper horizontal edge of the pel box is located at y - ascent. |
descent | Baseline to the bottom edge of the raster. Assuming that this character's pel box is reference from position (x, y), the lower horizontal edge of the pel box is located at y + descent. |
attributes | Must be zero. |
byteOffset | Byte offset of raster from the beginning of the glyph data. |
exists | True if glyph exists for this character. |
The glyph data includes information pertinent to each character in the font. The information for each character is a set of bits representing the character image.
name | Offset of a string |
value | A number or a string offset |
indirect | Value is a string offset. |