Syntax10.Scn.Fnt Syntax10b.Scn.Fnt MODULE AmigaLayers; IMPORT SYSTEM, A:=AmigaBase, e:=AmigaExec, g:=AmigaGraphics; CONST layersName*="layers.library"; layersBase:LONGINT; layersVersion-:INTEGER; CONST layerSimple*=0; layerBackdrop*=6; PROCEDURE BeginUpdate*(l:g.LayerPtr); r:A.Regs; BEGIN r.a[0]:=l; A.LibCall(layersBase,-78,r); END BeginUpdate; PROCEDURE CreateUpfrontLayer*( li:g.LayerInfoPtr; bm:g.BitMapPtr; x0:LONGINT; y0:LONGINT; x1:LONGINT; y1:LONGINT; flags:SET; superbm:g.BitMapPtr):g.LayerPtr; r:A.Regs; BEGIN r.a[0]:=li; r.a[1]:=bm; r.a[2]:=superbm; r.d[0]:=x0; r.d[1]:=y0; r.d[2]:=x1; r.d[3]:=y1; r.d[4]:=SYSTEM.VAL(LONGINT, flags); A.LibCall(layersBase,-36,r); RETURN r.d[0]; END CreateUpfrontLayer; PROCEDURE DeleteLayer*(layer:g.LayerPtr):BOOLEAN; r:A.Regs; BEGIN r.a[1]:=layer; A.LibCall(layersBase,-90,r); RETURN r.d[0]#0; END DeleteLayer; PROCEDURE DisposeLayerInfo*(li:g.LayerInfoPtr); r:A.Regs; BEGIN r.a[0]:=li; A.LibCall(layersBase,-150,r); END DisposeLayerInfo; PROCEDURE EndUpdate*(layer:g.LayerPtr; completed:BOOLEAN); r:A.Regs; BEGIN r.a[0]:=layer; r.d[0]:=SYSTEM.VAL(LONGINT, completed); A.LibCall(layersBase,-84,r); END EndUpdate; PROCEDURE InstallClipRegion*(layer:g.LayerPtr; region:g.RegionPtr):g.RegionPtr; r:A.Regs; BEGIN r.a[0]:=layer; r.a[1]:=region; A.LibCall(layersBase,-174,r); RETURN r.d[0]; END InstallClipRegion; PROCEDURE NewLayerInfo*():g.LayerInfoPtr; r:A.Regs; BEGIN A.LibCall(layersBase,-144,r); RETURN r.d[0]; END NewLayerInfo; PROCEDURE Init; LibraryPtr=POINTER TO e.Library; lib:LibraryPtr; BEGIN layersBase:=e.OpenLibrary(layersName,37); IF layersBase=0 THEN HALT(99) END; lib:=SYSTEM.VAL(LibraryPtr,layersBase); layersVersion:=lib.version; END Init; BEGIN Init; END AmigaLayers.