<> <> <<>> <> <> 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.