[ Previous | Next | Contents | Home | Search ]
AIX Version 4 Keyboard Technical Reference

Text Fonts for the AIX System

A set of precompiled text fonts are supplied with AIX Version 4. The set is for all display devices supported by AIX. 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.

Text Font Format

The text font definition file has four major parts in the following sequence:

  1. A font header that describes the font. The header is the same for all text fonts.
  2. A set of character descriptions and lookup information to find the glyph data in the font.
  3. Glyph data.
  4. Property strings.

Font Header

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

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.

Glyph Data

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.

Property Strings

name Offset of a string
value A number or a string offset
indirect Value is a string offset.

[ Previous | Next | Contents | Home | Search ]