Imager1bitDisplay.mesa
This interface provides access to the low level routines for the color display at 8 bits per pixel.
Last Edited by:
Crow, August 1, 1983 3:34 pm
DIRECTORY
ImagerBasic     USING [Transformation, IntRectangle, IntPair, CIEColor,
          PixelArray],
ImagerDisplay   USING [Mask, DisplayProcs, ByteSequence, VtxSequence];
Imager1bitDisplay: CEDAR DEFINITIONS
= BEGIN
OPEN ImagerBasic, ImagerDisplay;
SetUp: PROC [pin: BOOLEANTRUE]
  RETURNS [REF Transformation, Mask, DisplayProcs, PixelArray];
Get memory, pin it if pin = TRUE, set transform and clipper
ShutDown: PROC [];         -- free memory in case the last user has left
OpenPixelBuffer: PROC [box: Mask, 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: IntRectangle];
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]; -- draw a polygon
END.