<> <> DIRECTORY ImagerPixelMaps, Rope; RasterFontWriter: CEDAR DEFINITIONS ~ BEGIN InternalFont: TYPE ~ REF InternalFontRep; InternalFontRep: TYPE ~ RECORD [ family: Rope.ROPE _ NIL, face: [0..255] _ 0, bitsPerEmQuad: REAL _ 0, defaultChar: InternalCharRep, charRep: ARRAY CHAR OF InternalCharRep ]; InternalCharRep: TYPE ~ RECORD [ fWidth, sWidth: REAL, pixels: ImagerPixelMaps.PixelMap ]; Load: PROC [fileName: Rope.ROPE] RETURNS [InternalFont]; <> FormatError: ERROR [byteIndex: INT]; Create: PROC [defaultBoxBounds: ImagerPixelMaps.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, bitsPerInch: REAL _ 384.0]; END.