-- Blt.mesa -- Last changed by Doug Wyatt, September 30, 1980 2:41 PM DIRECTORY BitBltDefs USING [BBptr, BBTableSpace]; Blt: DEFINITIONS = { Grays: TYPE = ARRAY [0..4) OF CARDINAL; Handle: TYPE = POINTER TO Data; BBptr: TYPE = BitBltDefs.BBptr; Data: TYPE = RECORD [ bbt: BBptr, grays: Grays, sdx,sdy: INTEGER, refs: PRIVATE CARDINAL_1, space: PRIVATE BitBltDefs.BBTableSpace ]; New: PROC[base: LONG POINTER, raster: CARDINAL] RETURNS[Handle]; Source: PROC[d: Handle, base: LONG POINTER, raster: CARDINAL]; SetX: PROC[d: Handle, xmin,xmax: CARDINAL] = INLINE { bbt: BBptr=d.bbt; bbt.dlx_xmin; bbt.dw_xmax-xmin; }; SetY: PROC[d: Handle, ymin,ymax: CARDINAL] = INLINE { bbt: BBptr=d.bbt; bbt.dty_ymin; bbt.dh_ymax-ymin; }; SetBox: PROC[d: Handle, xmin,ymin,w,h: CARDINAL] = INLINE { bbt: BBptr=d.bbt; bbt.dlx_xmin; bbt.dty_ymin; bbt.dw_w; bbt.dh_h; }; Rect: PROC[d: Handle]; Ref: PROC[d: Handle] RETURNS[Handle] = INLINE { d.refs_d.refs+1; RETURN[d] }; Free: PROC[dPtr: LONG POINTER TO Handle] = INLINE { d: Handle=dPtr^; dPtr^_NIL; IF (d.refs_d.refs-1)=0 THEN CFree[d] }; CFree: PRIVATE PROC[d: Handle]; BltImpl: PROGRAM; }.(670)