home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / dev / oberon-a-1.4ß.lha / Oberon-A / source / amiga / Layers.mod < prev    next >
Text File  |  1994-08-08  |  6KB  |  239 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: Layers.mod $
  4.   Description: Interface to layers.library
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.2 $
  8.       $Author: fjc $
  9.         $Date: 1994/08/08 01:08:52 $
  10.  
  11.   $VER: layers_protos.h 38.7 (26.3.92)
  12.   Includes Release 40.15
  13.  
  14.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  15.       All Rights Reserved
  16.  
  17.   Oberon-A interface Copyright © 1994, Frank Copeland.
  18.   This file is part of the Oberon-A Interface.
  19.   See Oberon-A.doc for conditions of use and distribution.
  20.  
  21. ***************************************************************************)
  22.  
  23. MODULE Layers;
  24.  
  25. (*
  26. ** $C- CaseChk       $I- IndexChk  $L+ LongAdr   $N- NilChk
  27. ** $P- PortableCode  $R- RangeChk  $S- StackChk  $T- TypeChk
  28. ** $V- OvflChk       $Z- ZeroVars
  29. *)
  30.  
  31. IMPORT U := Utility, E := Exec, G := Graphics, SYS := SYSTEM;
  32.  
  33.  
  34. (*-- Library Base variable --------------------------------------------*)
  35.  
  36. TYPE
  37.  
  38.   LayersBasePtr * = CPOINTER TO LayersBase;
  39.   LayersBase * = RECORD (E.Library) END;
  40.  
  41. CONST
  42.  
  43.   name * = "layers.library";
  44.  
  45. VAR
  46.  
  47.   base * : LayersBasePtr;
  48.  
  49.  
  50. (*-- Library Functions ------------------------------------------------*)
  51.  
  52.  
  53. LIBCALL (base : LayersBasePtr) InitLayers*       (* ** OBSOLETE ** *)
  54.   ( li [8] : G.LayerInfoPtr );
  55.   -30;
  56. LIBCALL (base : LayersBasePtr) CreateUpfrontLayer*
  57.   ( li     [8] : G.LayerInfoPtr;
  58.     bm     [9] : G.BitMapPtr;
  59.     x0     [0] : LONGINT;
  60.     y0     [1] : LONGINT;
  61.     x1     [2] : LONGINT;
  62.     y1     [3] : LONGINT;
  63.     flags  [4] : E.WSET;
  64.     bm2   [10] : G.BitMapPtr )
  65.   : G.LayerPtr;
  66.   -36;
  67. LIBCALL (base : LayersBasePtr) CreateBehindLayer*
  68.   ( li     [8] : G.LayerInfoPtr;
  69.     bm     [9] : G.BitMapPtr;
  70.     x0     [0] : LONGINT;
  71.     y0     [1] : LONGINT;
  72.     x1     [2] : LONGINT;
  73.     y1     [3] : LONGINT;
  74.     flags  [4] : E.WSET;
  75.     bm2   [10] : G.BitMapPtr )
  76.   : G.LayerPtr;
  77.   -42;
  78. LIBCALL (base : LayersBasePtr) UpfrontLayer*
  79.   ( layer [9] : G.LayerPtr )
  80.   : BOOLEAN;
  81.   -48;
  82. LIBCALL (base : LayersBasePtr) BehindLayer*
  83.   ( layer [9] : G.LayerPtr )
  84.   : BOOLEAN;
  85.   -54;
  86. LIBCALL (base : LayersBasePtr) MoveLayer*
  87.   ( layer [9] : G.LayerPtr;
  88.     dx    [0] : LONGINT;
  89.     dy    [1] : LONGINT )
  90.   : BOOLEAN;
  91.   -60;
  92. LIBCALL (base : LayersBasePtr) SizeLayer*
  93.   ( layer [9] : G.LayerPtr;
  94.     dx    [0] : LONGINT;
  95.     dy    [1] : LONGINT )
  96.   : BOOLEAN;
  97.   -66;
  98. LIBCALL (base : LayersBasePtr) ScrollLayer*
  99.   ( layer [9] : G.LayerPtr;
  100.     dx    [0] : LONGINT;
  101.     dy    [1] : LONGINT );
  102.   -72;
  103. LIBCALL (base : LayersBasePtr) BeginUpdate*
  104.   ( l [8] : G.LayerPtr )
  105.   : BOOLEAN;
  106.   -78;
  107. LIBCALL (base : LayersBasePtr) EndUpdate*
  108.   ( layer [8] : G.LayerPtr;
  109.     flag  [0] : E.LONGBOOL );
  110.   -84;
  111. LIBCALL (base : LayersBasePtr) DeleteLayer*
  112.   ( layer [9] : G.LayerPtr )
  113.   : BOOLEAN;
  114.   -90;
  115. LIBCALL (base : LayersBasePtr) LockLayer*
  116.   ( layer [9] : G.LayerPtr );
  117.   -96;
  118. LIBCALL (base : LayersBasePtr) UnlockLayer*
  119.   ( layer [8] : G.LayerPtr );
  120.   -102;
  121. LIBCALL (base : LayersBasePtr) LockLayers*
  122.   ( li [8] : G.LayerInfoPtr );
  123.   -108;
  124. LIBCALL (base : LayersBasePtr) UnlockLayers*
  125.   ( li [8] : G.LayerInfoPtr );
  126.   -114;
  127. LIBCALL (base : LayersBasePtr) LockLayerInfo*
  128.   ( li [8] : G.LayerInfoPtr );
  129.   -120;
  130. LIBCALL (base : LayersBasePtr) SwapBitsRastPortClipRect*
  131.   ( rp     [8] : G.RastPortPtr;
  132.     VAR cr [9] : G.ClipRect );
  133.   -126;
  134. LIBCALL (base : LayersBasePtr) WhichLayer*
  135.   ( li [8] : G.LayerInfoPtr;
  136.     x  [0] : LONGINT;
  137.     y  [1] : LONGINT )
  138.   : G.LayerPtr;
  139.   -132;
  140. LIBCALL (base : LayersBasePtr) UnlockLayerInfo*
  141.   ( VAR li [8] : G.LayerInfo );
  142.   -138;
  143. LIBCALL (base : LayersBasePtr) NewLayerInfo* ()
  144.   : G.LayerInfoPtr;
  145.   -144;
  146. LIBCALL (base : LayersBasePtr) DisposeLayerInfo*
  147.   ( li [8] : G.LayerInfoPtr );
  148.   -150;
  149. LIBCALL (base : LayersBasePtr) FattenLayerInfo*  (* ** OBSOLETE ** *)
  150.   ( li [8] : G.LayerInfoPtr );
  151.   -156;
  152. LIBCALL (base : LayersBasePtr) ThinLayerInfo*    (* ** OBSOLETE ** *)
  153.   ( li [8] : G.LayerInfoPtr );
  154.   -162;
  155. LIBCALL (base : LayersBasePtr) MoveLayerInFrontOf*
  156.   ( layertomove    [8] : G.LayerPtr;
  157.     VAR otherlayer [9] : G.LayerPtr )
  158.   : BOOLEAN;
  159.   -168;
  160. LIBCALL (base : LayersBasePtr) InstallClipRegion*
  161.   ( layer  [8] : G.LayerPtr;
  162.     region [9] : G.RegionPtr )
  163.   : G.RegionPtr;
  164.   -174;
  165. LIBCALL (base : LayersBasePtr) MoveSizeLayer*
  166.   ( layer [8] : G.LayerPtr;
  167.     dx    [0] : LONGINT;
  168.     dy    [1] : LONGINT;
  169.     dw    [2] : LONGINT;
  170.     dh    [3] : LONGINT )
  171.   : BOOLEAN;
  172.   -180;
  173. LIBCALL (base : LayersBasePtr) CreateUpfrontHookLayer*
  174.   ( li    [8] : G.LayerInfoPtr;
  175.     bm    [9] : G.BitMapPtr;
  176.     x0    [0] : LONGINT;
  177.     y0    [1] : LONGINT;
  178.     x1    [2] : LONGINT;
  179.     y1    [3] : LONGINT;
  180.     flags [4] : E.WSET;
  181.     hook [11] : U.HookPtr;
  182.     bm2  [10] : G.BitMapPtr )
  183.   : G.LayerPtr;
  184.   -186;
  185. LIBCALL (base : LayersBasePtr) CreateBehindHookLayer*
  186.   ( li    [8] : G.LayerInfoPtr;
  187.     bm    [9] : G.BitMapPtr;
  188.     x0    [0] : LONGINT;
  189.     y0    [1] : LONGINT;
  190.     x1    [2] : LONGINT;
  191.     y1    [3] : LONGINT;
  192.     flags [4] : E.WSET;
  193.     hook [11] : U.HookPtr;
  194.     bm2  [10] : G.BitMapPtr )
  195.   : G.LayerPtr;
  196.   -192;
  197. LIBCALL (base : LayersBasePtr) InstallLayerHook*
  198.   ( layer [8] : G.LayerPtr;
  199.     hook  [9] : U.HookPtr )
  200.   : U.HookPtr;
  201.   -198;
  202.  
  203. (*--- functions in V39 or higher (Release 3) ---*)
  204.  
  205. LIBCALL (base : LayersBasePtr) InstallLayerInfoHook *
  206.   ( li   [8] : G.LayerInfoPtr;
  207.     hook [9] : U.HookPtr )
  208.   : U.HookPtr;
  209.   -204;
  210. LIBCALL (base : LayersBasePtr) SortLayerCR *
  211.   ( layer [8] : G.LayerPtr;
  212.     dx    [0] : LONGINT;
  213.     dy    [1] : LONGINT );
  214.   -210;
  215. LIBCALL (base : LayersBasePtr) DoHookClipRects *
  216.   ( hook  [8] : U.HookPtr;
  217.     rport [9] : G.RastPortPtr;
  218.     rect [10] : G.RectanglePtr );
  219.   -216;
  220.  
  221. (*-- Library Base variable --------------------------------------------*)
  222. (* $L- Address globals through A4 *)
  223.  
  224.  
  225. PROCEDURE* Close ();
  226.  
  227. BEGIN (* Close *)
  228.   IF base # NIL THEN E.base.CloseLibrary (base) END
  229. END Close;
  230.  
  231. BEGIN (* Layers *)
  232.   base :=
  233.     SYS.VAL
  234.       ( LayersBasePtr,
  235.         E.base.OpenLibrary (name, E.libraryMinimum));
  236.   IF base = NIL THEN HALT (100) END;
  237.   SYS.SETCLEANUP (Close)
  238. END Layers.
  239.