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 >
Oberon Text  |  1977-12-31  |  2KB  |  87 lines

  1. Syntax10.Scn.Fnt
  2. Syntax10b.Scn.Fnt
  3. MODULE AmigaLayers;
  4. IMPORT
  5.     SYSTEM, A:=AmigaBase, e:=AmigaExec, g:=AmigaGraphics;
  6. CONST
  7.     layersName*="layers.library";
  8.     layersBase:LONGINT;
  9.     layersVersion-:INTEGER;
  10. CONST
  11.     layerSimple*=0;
  12.     layerBackdrop*=6;
  13. PROCEDURE BeginUpdate*(l:g.LayerPtr);
  14.     r:A.Regs;
  15. BEGIN
  16.     r.a[0]:=l;
  17.     A.LibCall(layersBase,-78,r);
  18. END BeginUpdate;
  19. PROCEDURE CreateUpfrontLayer*(
  20.            li:g.LayerInfoPtr;
  21.            bm:g.BitMapPtr;
  22.            x0:LONGINT;
  23.            y0:LONGINT;
  24.            x1:LONGINT;
  25.            y1:LONGINT;
  26.            flags:SET;
  27.            superbm:g.BitMapPtr):g.LayerPtr;
  28.     r:A.Regs;
  29. BEGIN
  30.     r.a[0]:=li;
  31.     r.a[1]:=bm;
  32.     r.a[2]:=superbm;
  33.     r.d[0]:=x0;
  34.     r.d[1]:=y0;
  35.     r.d[2]:=x1;
  36.     r.d[3]:=y1;
  37.     r.d[4]:=SYSTEM.VAL(LONGINT, flags);
  38.     A.LibCall(layersBase,-36,r);
  39.     RETURN r.d[0];
  40. END CreateUpfrontLayer;
  41. PROCEDURE DeleteLayer*(layer:g.LayerPtr):BOOLEAN;
  42.     r:A.Regs;
  43. BEGIN
  44.     r.a[1]:=layer;
  45.     A.LibCall(layersBase,-90,r);
  46.     RETURN r.d[0]#0;
  47. END DeleteLayer;
  48. PROCEDURE DisposeLayerInfo*(li:g.LayerInfoPtr);
  49.     r:A.Regs;
  50. BEGIN
  51.     r.a[0]:=li;
  52.     A.LibCall(layersBase,-150,r);
  53. END DisposeLayerInfo;
  54. PROCEDURE EndUpdate*(layer:g.LayerPtr; completed:BOOLEAN);
  55.     r:A.Regs;
  56. BEGIN
  57.     r.a[0]:=layer;
  58.     r.d[0]:=SYSTEM.VAL(LONGINT, completed);
  59.     A.LibCall(layersBase,-84,r);
  60. END EndUpdate;
  61. PROCEDURE InstallClipRegion*(layer:g.LayerPtr; region:g.RegionPtr):g.RegionPtr;
  62.     r:A.Regs;
  63. BEGIN
  64.     r.a[0]:=layer;
  65.     r.a[1]:=region;
  66.     A.LibCall(layersBase,-174,r);
  67.     RETURN r.d[0];
  68. END InstallClipRegion;
  69. PROCEDURE NewLayerInfo*():g.LayerInfoPtr;
  70.     r:A.Regs;
  71. BEGIN
  72.     A.LibCall(layersBase,-144,r);
  73.     RETURN r.d[0];
  74. END NewLayerInfo;
  75. PROCEDURE Init;
  76.     LibraryPtr=POINTER TO e.Library;
  77.     lib:LibraryPtr;
  78. BEGIN
  79.     layersBase:=e.OpenLibrary(layersName,37);
  80.     IF layersBase=0 THEN HALT(99) END;
  81.     lib:=SYSTEM.VAL(LibraryPtr,layersBase);
  82.     layersVersion:=lib.version;
  83. END Init;
  84. BEGIN
  85.     Init;
  86. END AmigaLayers.
  87.