home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #6
/
amigamamagazinepolishissue1998.iso
/
coders
/
jËzyki_programowania
/
oberon
/
system
/
amigalayers.mod
(
.txt
)
< prev
next >
Wrap
Oberon Text
|
1977-12-31
|
2KB
|
87 lines
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.