Copyright (C) 1994, Digital Equipment Corp.
by Steve Glassman, Mark Manasse and Greg Nelson
<*PRAGMA LL*> UNSAFE INTERFACEThe following painting procedures are like the corresponding procedures in VBT, except that (1) they use screen-dependent resources rather than screen-independent resources, and (2) it is an unchecked runtime error to call them without locking the VBT.ScreenPaint ;
If the pixmap or paintop supplied for an operation is not suitable for the VBT's screentype, the effect is undefined, but limited to the clipping region. The NIL source represents a bitmap of solid 1's.
In all cases, LL = v.
IMPORT Rect, ScrnPaintOp, ScrnPixmap, Point, Region, ScrnFont, VBT, Path, Trapezoid; PROCEDURE PaintTexture( v: VBT.T; READONLY clip: Rect.T; op: ScrnPaintOp.T; src: ScrnPixmap.T := NIL; READONLY delta: Point.T := Point.Origin); PROCEDURE PaintTint( v: VBT.T; READONLY clip: Rect.T; op: ScrnPaintOp.T);
Like PaintTexture with a source of depth 1 that is all 1's.
PROCEDURE PolyTint( v: VBT.T; READONLY clp: ARRAY OF Rect.T; op: ScrnPaintOp.T); PROCEDURE PolyTexture( v: VBT.T; READONLY clp: ARRAY OF Rect.T; op: ScrnPaintOp.T; src: ScrnPixmap.T := NIL; READONLY delta: Point.T := Point.Origin); PROCEDURE PaintRegion( v: VBT.T; READONLY rgn: Region.T; op: ScrnPaintOp.T; src: ScrnPixmap.T := NIL; READONLY delta: Point.T := Point.Origin); PROCEDURE PaintPixmap( v: VBT.T; READONLY clip: Rect.T; op: ScrnPaintOp.T; src: ScrnPixmap.T; READONLY delta: Point.T); PROCEDURE PaintText( v: VBT.T; READONLY clip: Rect.T; READONLY pt: Point.T; fnt: ScrnFont.T; t: TEXT; op: ScrnPaintOp.T; dl: VBT.DisplacementList := NIL); PROCEDURE PaintSub( v: VBT.T; READONLY clip: Rect.T; READONLY pt: Point.T; fnt: ScrnFont.T; READONLY chars: ARRAY OF CHAR; op: ScrnPaintOp.T; dl: VBT.DisplacementList := NIL); PROCEDURE PaintPatch( v: VBT.T; READONLY clip: Rect.T; hl, hr, vlo, vhi, start: INTEGER; READONLY deltaArray: ARRAY OF VBT.DeltaPair; op: ScrnPaintOp.T; src: ScrnPixmap.T := NIL; READONLY delta: Point.T := Point.Origin); PROCEDURE Scroll( v: VBT.T; READONLY clip: Rect.T; READONLY delta: Point.T; op: ScrnPaintOp.T); PROCEDURE Fill( v: VBT.T; READONLY clip: Rect.T; path: Path.T; wind: VBT.WindingCondition; op: ScrnPaintOp.T; src: ScrnPixmap.T := NIL; READONLY delta: Point.T := Point.Origin); PROCEDURE Stroke( v: VBT.T; READONLY clip: Rect.T; path: Path.T; width: INTEGER := 1; end := VBT.EndStyle.RoundEnd; join := VBT.JoinStyle.RoundJoin; op: ScrnPaintOp.T; src: ScrnPixmap.T := NIL; READONLY delta: Point.T := Point.Origin); PROCEDURE PaintTrapezoid( v: VBT.T; READONLY clip: Rect.T; READONLY trap: Trapezoid.T; op: ScrnPaintOp.T; src: ScrnPixmap.T := NIL; READONLY delta: Point.T := Point.Origin); END ScreenPaint.