<> <> <> <<>> DIRECTORY Imager USING [Context], ImagerFont USING [BYTE, Extents, Font, XChar], ImagerTransformation USING [Transformation], ImagerTypeface USING [Typeface]; ImagerFontPrivate: CEDAR DEFINITIONS ~ BEGIN OPEN ImagerFont; Transformation: TYPE ~ ImagerTransformation.Transformation; Typeface: TYPE ~ ImagerTypeface.Typeface; FontImpl: TYPE ~ REF FontImplRep; FontImplRep: TYPE ~ RECORD [ typeface: Typeface, fontBoundingBox: Extents _ [0, 0, 0, 0], widthX: WidthTable _ NIL, -- for character set 0 widthY: WidthTable _ NIL -- for character set 0 ]; WidthTable: TYPE ~ REF WidthTableRep; WidthTableRep: TYPE ~ ARRAY BYTE OF REAL; FontAtom: TYPE ~ REF FontAtomRep; FontAtomRep: TYPE ~ RECORD [typeface: Typeface, m: Transformation]; MakeFontAtom: PROC [typeface: Typeface, m: Transformation] RETURNS [FontAtom]; MaskChar: PROC[font: Font, char: XChar, context: Imager.Context]; END.