<> <> DIRECTORY Atom, ImagerBasic, ImagerManhattan, ImagerMasks, ImagerPixelMaps, ImagerPrivate; ImagerDisplay: CEDAR DEFINITIONS ~ BEGIN DeviceRectangle: TYPE ~ ImagerBasic.DeviceRectangle; Mask: TYPE ~ ImagerMasks.Mask; Color: TYPE ~ ImagerBasic.Color; ManhattanPolygon: TYPE ~ ImagerManhattan.Polygon; ClientClipper: TYPE ~ ImagerBasic.ClientClipper; DisplayClass: TYPE ~ REF DisplayClassRep; DisplayClassRep: TYPE ~ RECORD [ displayType: ATOM, viewUnitsPerPixel: NAT, <> Create: PROC [displayClass: DisplayClass, creationData: REF] RETURNS [displayData: DisplayData], <> ApplyMask: PROC [displayData: DisplayData, color: Color, mask: Mask, sTranslate, fTranslate: INTEGER], <> DoUnderLock: PROC [displayData: DisplayData, action: PROC, rectangle: DeviceRectangle] <> ]; DisplayData: TYPE ~ REF DisplayDataRep; DisplayDataRep: TYPE ~ RECORD [ displayClass: DisplayClass, <> viewClipper: ManhattanPolygon _ NIL, -- in device-spatial coords clientClipper: ClientClipper _ NIL, -- for noticing client clipper changes compositeClipper: ManhattanPolygon _ NIL, -- in device-spatial coords; invalid if NIL or clientClipper#state.clipper <> viewOrigin: ImagerBasic.IntPair _ [0, 0], <> <> xRes, yRes: REAL, <> <> rotate: BOOLEAN _ TRUE, surfaceWidth, surfaceHeight: NAT, <> <> <> <> cachedColor: ImagerBasic.Color _ NIL, cachedColorData: REF, <> props: Atom.PropList, <> pix: SEQUENCE numberOfSeparations: NAT OF ImagerPixelMaps.PixelMap ]; CreateImagerClass: PROC [displayClass: DisplayClass] RETURNS [ImagerPrivate.Class]; <> END.