DIRECTORY Rope USING [ROPE], BasicTime USING [GMT], ImagerBasic USING [PixelArray, PathMapType]; PrintFontsPrivate: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE ; FontNotFound: SIGNAL; PrivateFont: TYPE ~ REF PrivateFontRep; PrivateFontRep: TYPE ~ RECORD [ family: Rope.ROPE _ NIL, version: INT _ 0, time: BasicTime.GMT, type: PrivateFontType, pointSize: REAL _ 1, --only for outline fonts face: [0..255] _ 0, descent, ascent, maxW: REAL _ 0, bc, ec: CHAR, charRep: ARRAY CHAR OF CharRep ]; CharRep: TYPE ~ RECORD [ width: REAL, pixels: ImagerBasic.PixelArray _ NIL, outline: PathType _ NIL ]; PrivateFontType: TYPE = {raster, outline}; PathType: TYPE = REF PathTypeRec; PathTypeRec: TYPE = RECORD[pathMap: ImagerBasic.PathMapType, pathData: REF]; LoadAC: PROC [fileName: Rope.ROPE] RETURNS [font: PrivateFont]; LoadSD: PROC [fileName: Rope.ROPE, pointSize: REAL] RETURNS [font: PrivateFont]; LoadSF: PROC [fileName: Rope.ROPE, pointSize: REAL] RETURNS [font: PrivateFont]; END. ‚PrintFontsPrivate.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Written by: Maureen Stone April 6, 1985 5:49:03 pm PST Last Changed: Maureen Stone April 6, 1985 5:49:55 pm PST sizes are in font pixels. For Raster fonts this is clear. For outline fonts, pixels=output device pixels Compute sizes relative to pointSize. PointSize should be in device pixels Κδ˜šœ™Icodešœ Οmœ1™