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. vImagerDisplay.mesa Michael Plass, March 14, 1984 1:06:59 pm PST Multi-level antialiased displays may have a higher spatial resolution than pixel resolution. This number is of interest to window managers, since windows should fall on pixel boundaries. Called when a new DisplayData instance is created. The mask is given in device-spatial coordinates. The rectangle is given in device-spatial coordinates. Clipper info: View-to-surface info In surface coordinates Device resolution info in device-spatial units per inch. Surface-to-device-spatial info in device-spatial units s = IF rotate THEN surfaceHeight-y ELSE x; f = IF rotate THEN x ELSE y; Cached color info Property list The pixels Creates, but does not register, a pre-initialized Imager class record. A display implementation may alter the class record (to special-case rectangles, for example) before registering it. ÊR˜Jšœ™J™,J˜JšÏk œQ˜ZJ˜šœœ œ˜(J˜—Jšœœ˜4Jšœœ˜Jšœœ˜ Jšœœ˜1Jšœœ˜0J˜Jšœœœ˜)šœœœ˜ Jšœ œ˜šœœ˜Jšœğ™ğ—šÏnœœ,œœ˜`Jšœ2™2—šž œœNœ˜fJ™0—šž œœ$œ˜VJšœ5™5—Jšœ˜J˜—Jšœ œœ˜'šœœœ˜Jšœ˜™ Jšœ œÏc˜@JšœœŸ&˜JJšœ%œŸJ˜t—™šœ)˜)J™——™šœ œ˜Jšœ!™!——šœ Ÿœ™Jšœœœ˜šœœ˜!JšœŸœ™Jšœœœœ™*Jšœœœœ™——™Jšœ!œ˜%Jšœœ˜—™ Jšœ˜—™ Jšœœœœ˜B—Jšœ˜J˜—šžœœœ˜SJ™ĵJ˜—Jšœ˜J˜—…—Ê ’