<> <> <> <> <<>> <> <<>> DIRECTORY Basics USING [BITAND, BITNOT, BITOR], II USING [Context], IIDevice USING [CharMask, DeviceParm, DeviceClass, FontTuner], IIFont USING [Font, XChar, XStringProc], IIFontPrivate USING [FontAtom], IIManhattan USING [Polygon], IIRaster USING [Interceptor], IIScanConverter USING [DevicePath], IITransformation USING [Transformation], SF USING [Box]; IIRasterPrivate: CEDAR DEFINITIONS IMPORTS Basics ~ BEGIN Context: TYPE ~ II.Context; CharMask: TYPE ~ IIDevice.CharMask; DeviceParm: TYPE ~ IIDevice.DeviceParm; DeviceClass: TYPE ~ IIDevice.DeviceClass; FontTuner: TYPE ~ IIDevice.FontTuner; Box: TYPE ~ SF.Box; nullBox: Box ~ [min: [0, 0], max: [0, 0]]; DevicePath: TYPE ~ IIScanConverter.DevicePath; FontAtom: TYPE ~ IIFontPrivate.FontAtom; Transformation: TYPE ~ IITransformation.Transformation; ManhattanPolygon: TYPE ~ IIManhattan.Polygon; Font: TYPE ~ IIFont.Font; XChar: TYPE ~ IIFont.XChar; XStringProc: TYPE ~ IIFont.XStringProc; Flags: TYPE ~ RECORD [ clientToDevice: BOOL _ FALSE, -- clientToDevice is valid compositeClipper: BOOL _ FALSE, -- compositeClip and compositeBox are valid fontInfo: BOOL _ FALSE, -- charToDevice and fontAtom are valid deviceColor: BOOL _ FALSE, -- color last set by SetColor[device, ...] is valid devicePriority: BOOL _ FALSE, -- priority last set by SetPriority[device, ...] is valid unused: [0..3777B] _ 0 ]; noFlags: Flags ~ []; OrFlags: PROC [f1, f2: Flags] RETURNS [Flags] ~ INLINE { RETURN[LOOPHOLE[Basics.BITOR[LOOPHOLE[f1], LOOPHOLE[f2]]]]; }; AndFlags: PROC [f1, f2: Flags] RETURNS [Flags] ~ INLINE { RETURN[LOOPHOLE[Basics.BITAND[LOOPHOLE[f1], LOOPHOLE[f2]]]]; }; NotFlags: PROC [f: Flags] RETURNS [Flags] ~ INLINE { RETURN[LOOPHOLE[Basics.BITNOT[LOOPHOLE[f]]]]; }; RasterData: TYPE ~ REF RasterDataRep; RasterDataRep: TYPE ~ RECORD [ deviceParm: DeviceParm _ NIL, -- parameters for the particular raster device deviceClass: DeviceClass _ NIL, -- the device class, perhaps layered to call modify proc interceptor: IIRaster.Interceptor _ NIL, devicePath: DevicePath _ NIL, -- scratch storage for scan converter valid: Flags _ [], deviceClipBox: Box _ nullBox, -- always valid surfaceToDevice: Transformation _ NIL, -- always valid viewToDevice: Transformation _ NIL, -- always valid viewClip: ManhattanPolygon _ NIL, -- deviceClipBox device coords; always valid viewBox: Box _ nullBox, -- bb of viewClip; device coords; always valid clientToDevice: Transformation _ NIL, -- valid iff valid.clientToDevice compositeClip: ManhattanPolygon _ NIL, -- device coords; valid iff valid.compositeClipper compositeBox: Box _ nullBox, -- device coords; valid iff valid.compositeClipper fontAtom: FontAtom _ NIL, -- valid iff valid.fontInfo charToDevice: Transformation _ NIL, -- valid iff valid.fontInfo maskToDevice: Transformation _ NIL -- scratch storage for MaskBitmap and MaskPixel ]; NoteStateChanges: PROC [context: Context]; ValidateIfNeeded: PROC [context: Context, needs: Flags]; ClipBoxToMask: PROC [box: Box, mask: ManhattanPolygon, action: PROC [Box]]; RasterShow: PROC [context: Context, string: XStringProc, xrel: BOOL]; BasicShowChar: PROC [context: Context, font: Font, char: XChar, checkBB: BOOL, imaging: BOOL]; ShowCharacterMask: PROC [context: Context, mask: CharMask, s: INTEGER, f: INTEGER]; RasterShowText: PROC [context: Context, text: REF READONLY TEXT, start, len: NAT, xrel: BOOL]; END.