ImagerDisplayPrivate.mesa
Copyright © 1984, Xerox Corporation. All rights reserved.
Michael Plass, March 14, 1984 1:06:59 pm PST
Doug Wyatt, October 9, 1984 4:21:28 pm PDT
DIRECTORY
ImagerBasic USING [IntPair],
ImagerColor USING [Color],
ImagerPixelMap USING [DeviceRectangle],
ImagerTransformation USING [Transformation];
ImagerDisplayPrivate: CEDAR DEFINITIONS
Transformation: TYPE ~ ImagerTransformation.Transformation;
Color: TYPE ~ ImagerColor.Color;
IVEC: TYPE ~ ImagerBasic.IntPair;
RunProc: TYPE ~ PROC[sMin, fMin: INTEGER, fSize: NAT];
DeviceRectangle: TYPE ~ ImagerPixelMap.DeviceRectangle;
RectangleProc: TYPE ~ PROC[DeviceRectangle];
Display: TYPE ~ REF DisplayRep;
DisplayRep:
TYPE ~
RECORD[
type: ATOM,
setColor: PROC[display: Display, color: Color, viewOrigin: IVEC],
maskRuns: PROC[display: Display, runs: PROC[RunProc]],
maskRectangles: PROC[display: Display, rectangles: PROC[RectangleProc]],
surfaceToDisplay: Transformation,
clipBox: DeviceRectangle, -- in device-spatial units
sRes, fRes: REAL, -- resolution in device-spatial units per inch.
viewUnitsPerPixel:
NAT,
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.
data: REF -- display-dependent data
];
SetColor:
PROC[display: Display, color: Color, viewOrigin:
IVEC]
~ INLINE { display.setColor[display: display, color: color, viewOrigin: viewOrigin] };
Establish the color for following masks.
MaskRuns:
PROC[display: Display, runs:
PROC[RunProc]]
~ INLINE { display.maskRuns[display: display, runs: runs] };
Apply the current color within the specified runs.
MaskRectangles:
PROC[display: Display, rectangles:
PROC[RectangleProc]]
~ INLINE { display.maskRectangles[display: display, rectangles: rectangles] };
Apply the current color within the specified rectangles.
END.