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.