PrintFontsPrivate.mesa
Copyright © 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
PrintFontsPrivate:
CEDAR DEFINITIONS = BEGIN
ROPE: TYPE = Rope.ROPE ;
FontNotFound: SIGNAL;
PrivateFont: TYPE ~ REF PrivateFontRep;
sizes are in font pixels. For Raster fonts this is clear. For outline fonts, pixels=output device pixels
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];
Compute sizes relative to pointSize. PointSize should be in device pixels
LoadSD: PROC [fileName: Rope.ROPE, pointSize: REAL] RETURNS [font: PrivateFont];
LoadSF: PROC [fileName: Rope.ROPE, pointSize: REAL] RETURNS [font: PrivateFont];
END.