<> <> <> <<>> DIRECTORY ImagerPixelMap USING [DeviceRectangle, PixelMap], Rope USING [ROPE]; RasterFontIO: CEDAR DEFINITIONS ~ BEGIN InternalFont: TYPE ~ REF InternalFontRep; InternalFontRep: TYPE ~ RECORD [ family: Rope.ROPE _ NIL, face: [0..255] _ 0, bitsPerEmQuad: REAL _ 0, bitsPerInch: REAL _ 72, defaultChar: InternalCharRep, charRep: ARRAY CHAR OF InternalCharRep ]; InternalCharRep: TYPE ~ RECORD [ fWidth, sWidth: REAL, pixels: ImagerPixelMap.PixelMap ]; Load: PROC [fileName: Rope.ROPE] RETURNS [InternalFont]; <> FormatError: ERROR [byteIndex: INT]; Create: PROC [defaultBoxBounds: ImagerPixelMap.DeviceRectangle, defaultWidth: INTEGER] RETURNS [InternalFont]; ComputeFontMetrics: PROC [internalFont: InternalFont] RETURNS [bc, ec: CHAR, sMin, fMin, sMax, fMax: INTEGER, maxWidth, totalWidth, fSizeStrike: CARDINAL]; Trim: PROC [internalFont: InternalFont]; <> <<>> WriteStrike: PROC [internalFont: InternalFont, fileName: Rope.ROPE]; WriteKernedStrike: PROC [internalFont: InternalFont, fileName: Rope.ROPE]; WriteAC: PROC [internalFont: InternalFont, fileName: Rope.ROPE]; END.