DIRECTORY ImagerBasic USING [Path, IntRectangle, IntVec, PixelArray], Imager USING [Context]; ImagerInteractiveImpl: CEDAR PROGRAM IMPORTS EXPORTS Imager = BEGIN OPEN ImagerBasic; HiliteArea: PUBLIC PROC [context: Context, area: Path] = {}; -- Invert on LF, device dependent HiliteIntRectangle: PUBLIC PROC [context: Context, area: IntRectangle] = {}; MoveIntRectangle: PUBLIC PROC [context: Context, source: IntRectangle, destination: IntVec] = {}; GetPixelArray: PUBLIC PROC [context: Context, source: IntRectangle, image: PixelArray _ NIL] RETURNS [PixelArray] = { RETURN [ context.deviceProcs.getPxls[source] ]; }; PutPixelArray: PUBLIC PROC [context: Context, destination: IntRectangle, image: PixelArray] = {}; StartDoubleBuffering: PUBLIC PROC [context: Context] = { pxls: PixelArray; pxls _ context.deviceProcs.openPixelBuffer[]; }; StopDoubleBuffering: PUBLIC PROC [context: Context] = { context.deviceProcs.closePixelBuffer[]; }; END. žImagerInteractiveImpl.mesa Last Edited by: Crow, June 18, 1983 10:58 am Client-called Procedures These operations may not work on all devices, will no-op on noninteractive devices. General Track Fast Track Client's way to use BitBlt These use uninterpreted Pixel Arrays, clip to rectangle. Handy for rubber-stamping, etc.) Maintain shadow pixel array on the side for building images, use with "NewFrame". ΚK˜Ihead™˜J™-šΟk ˜ Jšœ œ*˜;Jšœœ ˜——šœ ˜$Jšœ˜Jšœ˜J˜Jšœœœ ˜—šœ™™SIunitšΟi ™ —šΟn œ œ&Οc"˜_Lšž ™ —JšŸœ œ,˜LšŸœ œD˜aJ™—šŸ œ œ>œœ˜uJšœ)˜/Jšœ˜—šŸ œ œG˜aJšœZ™Z—šŸœ œ˜8J™QJšœ˜Jšœ-˜-Jšœ˜—šŸœ œ˜7Jšœ'˜'Jšœ˜—Lšœ˜——…—Ί£