DIRECTORY Basics USING [BITAND, BITNOT, BITOR], Imager USING [Context], ImagerCache USING [Ref], ImagerDevice USING [CharMask, Device], ImagerFont USING [Font, XChar, XStringProc], ImagerFontPrivate USING [FontAtom], ImagerManhattan USING [Polygon], ImagerRaster USING [FontTuner], ImagerScanConverter USING [DevicePath], ImagerState USING [State], ImagerTransformation USING [Transformation], SF USING [Box]; ImagerRasterPrivate: CEDAR DEFINITIONS IMPORTS Basics ~ BEGIN Context: TYPE ~ Imager.Context; Device: TYPE ~ ImagerDevice.Device; CharMask: TYPE ~ ImagerDevice.CharMask; Box: TYPE ~ SF.Box; nullBox: Box ~ [min: [0, 0], max: [0, 0]]; DevicePath: TYPE ~ ImagerScanConverter.DevicePath; FontAtom: TYPE ~ ImagerFontPrivate.FontAtom; Transformation: TYPE ~ ImagerTransformation.Transformation; ManhattanPolygon: TYPE ~ ImagerManhattan.Polygon; Font: TYPE ~ ImagerFont.Font; XChar: TYPE ~ ImagerFont.XChar; XStringProc: TYPE ~ ImagerFont.XStringProc; Flags: TYPE ~ RECORD[ clientToDevice: BOOL _ FALSE, -- clientToDevice is valid clientClipper: BOOL _ FALSE, -- clientClipMask and clientClipBox 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]]]]; }; FontCache: TYPE ~ ImagerCache.Ref; charArraySize: NAT ~ 128; CharArrayIndex: TYPE ~ NAT[0..charArraySize); CharArray: TYPE ~ REF CharArrayRep; CharArrayRep: TYPE ~ ARRAY CharArrayIndex OF CharMask; Data: TYPE ~ REF DataRep; DataRep: TYPE ~ RECORD[ device: Device _ NIL, -- a particular raster device charArray: CharArray _ NIL, -- local cache of recently used characters fontCache: FontCache _ NIL, rastWeight: REAL _ 0.0, -- bigger values favor bitmaps in the cache. fontTuner: ImagerRaster.FontTuner _ NIL, devicePath: DevicePath _ NIL, -- scratch storage for scan converter valid: Flags _ [], viewToDevice: Transformation _ NIL, -- always valid viewClipMask: ManhattanPolygon _ NIL, -- device coords; always valid viewClipBox: Box _ nullBox, -- device coords; always valid clientToDevice: Transformation _ NIL, -- valid iff valid.clientToDevice clientClipMask: ManhattanPolygon _ NIL, -- device coords; valid iff valid.clientClipper clientClipBox: Box _ nullBox, -- device coords; valid iff valid.clientClipper clientClipBoxOnly: BOOL _ FALSE, -- client clipper is equal to clientClipBox; valid iff valid.clientClipper specialClipPresent: BOOL _ FALSE, -- Used by ImagerOpsImpl specialClipBox: Box _ nullBox, -- device coords; valid iff specialClipPresent maskToDevice: Transformation _ NIL, -- scratch storage for MaskBits and MaskPixel fontAtom: FontAtom _ NIL, -- valid iff valid.fontInfo charToDevice: Transformation _ NIL -- valid iff valid.fontInfo ]; NoteStateChanges: PROC [data: Data, state: ImagerState.State]; ValidateIfNeeded: PROC [data: Data, state: ImagerState.State, 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, fontTuner: ImagerRaster.FontTuner _ NIL]; ShowCharacterMask: PROC [data: Data, mask: CharMask, s: INTEGER, f: INTEGER]; RasterShowText: PROC [context: Context, text: REF READONLY TEXT, start, len: NAT, xrel: BOOL]; END. μImagerRasterPrivate.mesa Copyright c 1984, 1985 by Xerox Corporation. All rights reserved. Michael Plass, June 26, 1985 7:12:59 pm PDT Doug Wyatt, February 17, 1986 3:31:23 pm PST Private definitions used by ImagerRasterImpl. Κ°˜codešœ™Kšœ Οmœ7™BK™+Kšœ,™,—K™K™-K™šΟk ˜ Kš œžœžœžœžœ˜%Kšœžœ ˜Kšœ žœ˜Kšœ žœ˜&Kšœ žœ˜,Kšœžœ ˜#Kšœžœ ˜ Kšœ žœ ˜Kšœžœ˜'Kšœ žœ ˜Kšœžœ˜,Kšžœžœ˜—K˜KšΠblœžœž ˜&Kšžœ˜Kšœž˜K˜Kšœ žœ˜Kšœžœ˜#Kšœ žœ˜'Kšœžœžœ˜Kšœ*˜*Kšœ žœ"˜2Kšœ žœ˜,Kšœžœ'˜;Kšœžœ˜1Kšœžœ˜Kšœžœ˜Kšœ žœ˜+K˜šœžœžœ˜KšœžœžœΟc˜8Kšœžœžœ -˜JKšœ žœžœ &˜>Kšœ žœžœ 3˜NKšœžœžœ 9˜WJ˜J˜J˜—˜K˜—šΟnœžœžœ žœ˜6Kš žœžœžœžœžœ˜;K˜K˜—š‘œžœžœ žœ˜7Kš žœžœžœžœžœ˜K˜K˜—š‘œžœ(˜>K˜—š‘œžœ6˜LK˜—š‘ œžœ,žœ˜JK˜—š‘ œžœ/žœ˜EK˜—š ‘ œžœ7žœ žœ&žœ˜ˆK˜—š‘œžœ!žœžœ˜MK˜—š‘œžœžœžœžœžœžœ˜^K˜—Kšžœ˜—…—άx