Imager4bitDisplay.mesa
This interface provides access to the low level routines for the color display at 4 bits per pixel.
Last Edited by:
GWilliams, July 25, 1983 7:04 pm
DIRECTORY
ImagerBasic     USING [Transformation, IntRectangle, IntPair, CIEColor,
          PixelArray],
ImagerDisplay   USING [ClipperRecord, DisplayProcs, ByteSequence, VtxSequence];
Imager4bitDisplay: CEDAR DEFINITIONS
= BEGIN
OPEN ImagerBasic, ImagerDisplay;
SetUp: PROC [] RETURNS [Transformation, REF ClipperRecord, DisplayProcs]; -- get memory, pin it, set transform and clipper
ShutDown: PROC [];         -- free memory in case the last user has left
OpenPixelBuffer: PROC [box: ClipperRecord, buffer: PixelArray ← NIL] RETURNS [PixelArray]; -- redirect writes for double-buffer
ClosePixelBuffer: PROC [];        -- drop pixel buffer ref
ColortoPixel: PROC [color: CIEColor] RETURNS [LONG CARDINAL];  -- Color to device transform
PixeltoColor: PROC [pxlValue: LONG CARDINAL] RETURNS [CIEColor];
HilitePxls: PROC [area: IntRectangle];     -- Device dependent highlighting scheme
MovePxls: PROC [source: IntRectangle, destination: IntPair];     -- move on display
StorePxls: PROC [source: IntRectangle] RETURNS [PixelArray];
LoadPxls: PROC [source: PixelArray ← NIL, destination: IntPair, transparent: BOOLEAN];
StoreScanSeg: PROC [x, y, length: CARDINAL] RETURNS [ByteSequence];
LoadScanSeg: PROC [x, y, length: CARDINAL, segment: ByteSequence, transparent: BOOLEAN];
LoadTrapezoid: PROC [top, bottom, leftTop, leftBot, rightTop, rightBot: CARDINAL, pxlValue: LONG CARDINAL];             -- Scan convert trapezoid, constant color
SetPxl: PROC [x, y: CARDINAL, pxlValue: LONG CARDINAL];
GetPxl: PROC [x, y: CARDINAL] RETURNS [LONG CARDINAL];
DrawLine: PROC [a, b: IntPair, pxlValue: LONG CARDINAL]; -- draw a fast line, constant color
Tiler: PROC [VtxCount: CARDINAL, Vertices: ImagerDisplay.VtxSequence];
END.