ImagerStdColorDisplay.mesa
Copyright © 1984 by Xerox Corporation. All rights reserved.
Frank Crow, June 15, 1984 11:51:57 am PDT
DIRECTORY
ImagerBasic USING [DeviceRectangle, Color, ConstantColor],
ImagerDisplay USING [DisplayClass, DisplayData],
ImagerMasks USING [Mask],
ColorModels USING [Calibration],
WindowManager USING [ScreenPos],
Terminal USING [ColorMode, Virtual];
ImagerStdColorDisplay:
CEDAR
DEFINITIONS
~ BEGIN
This provides support for the Dorado color display hardware common to standard displays.
DisplayClass: TYPE ~ ImagerDisplay.DisplayClass;
DisplayData: TYPE ~ ImagerDisplay.DisplayData;
Color: TYPE ~ ImagerBasic.Color;
Mask: TYPE ~ ImagerMasks.Mask;
DeviceRectangle: TYPE ~ ImagerBasic.DeviceRectangle;
ColorSequence: TYPE ~ RECORD[SEQUENCE length: NAT OF ImagerBasic.ConstantColor];
RGBSequence: TYPE ~ RECORD[SEQUENCE length: NAT OF RECORD[ r, g, b: [0..256) ] ];
ColorMapData:
TYPE ~
RECORD [
pixelValueList: LIST OF CARDINAL,
colorCalibration: ColorModels.Calibration,
nextEntry: NAT,
map: REF ColorSequence
];
ColorDisplayError: SIGNAL [reason: ATOM];
displaySide: WindowManager.ScreenPos;
colorCalibration: ColorModels.Calibration;
callback for initializing the colormap
SetUpMapProc:
TYPE ~
PROC[displayData: DisplayData];
callback for loading a color into the map
LoadColorProc: TYPE ~ PROC [ color: ImagerBasic.ConstantColor,
colorCalibration: ColorModels.Calibration,
mapEntry: [0..256) ];
callback for updating colormap cache
CachedColorProc:
TYPE
~ PROC[displayData: DisplayData, color: Color];
Create: PUBLIC PROC [vt: Terminal.Virtual, mode: Terminal.ColorMode,
displayClass: DisplayClass, creationData: REF,
bitsPerPixel: NAT, setUpMapProc: ImagerStdColorDisplay.SetUpMapProc]
RETURNS [displayData: DisplayData];
DoUnderLock: PUBLIC PROC [displayData: DisplayData, action: PROC, rectangle: DeviceRectangle];
ApplyMask: PUBLIC PROC [displayData: DisplayData,
color: Color, mask: Mask, sTranslate, fTranslate: INTEGER,
cachedColorProc: ImagerStdColorDisplay.CachedColorProc];
PinPixelMap:
PUBLIC
PROC [vt: Terminal.Virtual, data: DisplayData
, mode: Terminal.ColorMode];
Pin a pixel map to the color display replacing whatever was there before.
ReleasePixelMap: PUBLIC PROC [vt: Terminal.Virtual, data: DisplayData];
MoveOverlay: PUBLIC PROC [vt: Terminal.Virtual, data: REF ANY];
SwitchBuffers: PUBLIC PROC [];
LoadColorMap: PUBLIC PROC [vt: Terminal.Virtual, data: REF ANY,
displayData: DisplayData,
loadColor
: ImagerStdColorDisplay.LoadColorProc];
END.