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.