home *** CD-ROM | disk | FTP | other *** search
/ AMIGA PD 1 / AMIGA-PD-1.iso / Programme_zum_Heft / Programmieren / Kurztests / PascalPCQ / Include / Graphics / Layers.i < prev    next >
Text File  |  1990-08-28  |  3KB  |  119 lines

  1. {
  2.     Layers.i for PCQ Pascal
  3. }
  4.  
  5. {$I "Include:Exec/Lists.i"}
  6. {$I "Include:Exec/Semaphores.i"}
  7.  
  8. var
  9.     LayersBase    : Address;
  10.  
  11. const
  12.  
  13.     LAYERSIMPLE        = 1;
  14.     LAYERSMART        = 2;
  15.     LAYERSUPER        = 4;
  16.     LAYERUPDATING    = $10;
  17.     LAYERBACKDROP    = $40;
  18.     LAYERREFRESH    = $80;
  19.     LAYER_CLIPRECTS_LOST = $100;    { during BeginUpdate }
  20.                     { or during layerop }
  21.                     { this happens if out of memory }
  22.     LMN_REGION        = -1;
  23.  
  24. type
  25.  
  26.     Layer_Info = record
  27.     top_layer    : Address;    { LayerPtr }
  28.     check_lp    : Address;    { (LayerPtr) system use }
  29.     obs        : Address;    { (LayerPtr) system use }
  30.     FreeClipRects    : MinList;
  31.     Lock        : SignalSemaphore;
  32.     gs_Head        : List;        { system use }
  33.     longreserved    : Integer;
  34.     Flags        : Short;
  35.     fatten_count    : Byte;
  36.     LockLayersCount    : Byte;
  37.     LayerInfo_extra_size : Short;
  38.     blitbuff    : Address;
  39.     LayerInfo_extra    : Address;
  40.     end;
  41.     Layer_InfoPtr = ^Layer_Info;
  42.  
  43. const
  44.  
  45.     NEWLAYERINFO_CALLED    = 1;
  46.     ALERTLAYERSNOMEM    = $83010000;
  47.  
  48. Function BeginUpdate(l : LayerPtr): Boolean;
  49.     External;
  50.  
  51. Function BehindLayer(l : LayerPtr) : Boolean;
  52.     External;
  53.  
  54. Function CreateBehindLayer(li : Layer_InfoPtr; bm : Address;
  55.                x0,y0,x1,y1 : Integer; flags : Integer;
  56.                bm2 : Address) : LayerPtr;
  57.     External;
  58.  
  59. Function CreateUpfrontLayer(li : Layer_InfoPtr; bm : Address;
  60.                 x0,y0,x1,y1 : Integer; flags : Integer;
  61.                 bm2 : Address) : LayerPtr;
  62.     External;
  63.  
  64. Function DeleteLayer(l : LayerPtr) : Boolean;
  65.     External;
  66.  
  67. Procedure DisposeLayerInfo(li : Layer_InfoPtr);
  68.     External;
  69.  
  70. Procedure EndUpdate(l : LayerPtr; flag : Boolean);
  71.     External;
  72.  
  73. Function InstallClipRegion(l : LayerPtr; region : Address) : Address;
  74.     External;    { both Address's are RegionPtr }
  75.  
  76. Procedure LockLayer(l : LayerPtr);
  77.     External;
  78.  
  79. Procedure LockLayerInfo(li : Layer_InfoPtr);
  80.     External;
  81.  
  82. Procedure LockLayers(li : Layer_InfoPtr);
  83.     External;
  84.  
  85. Function MoveLayer(l : LayerPtr; dx, dy : Integer) : Boolean;
  86.     External;
  87.  
  88. Function MoveLayerInFrontOf(layertomove, targetlayer : LayerPtr) : Boolean;
  89.     External;
  90.  
  91. Function NewLayerInfo : Layer_InfoPtr;
  92.     External;
  93.  
  94. Procedure ScrollLayer(l : LayerPtr; dx, dy : Integer);
  95.     External;
  96.  
  97. Function SizeLayer(l : LayerPtr; dx, dy : Integer) : Boolean;
  98.     External;
  99.  
  100. Procedure SwapBitsRastPortClipRect(rp : Address; cr : Address);
  101.     External;    { rp is a RastPortPtr }
  102.         { cr is a ClipRectPtr }
  103.  
  104. Procedure UnlockLayer(l : LayerPtr);
  105.     External;
  106.  
  107. Procedure UnlockLayerInfo(li : Layer_InfoPtr);
  108.     External;
  109.  
  110. Procedure UnlockLayers(li : Layer_InfoPtr);
  111.     External;
  112.  
  113. Function UpfrontLayer(l : LayerPtr) : Boolean;
  114.     External;
  115.  
  116. Function WhichLayer(li : Layer_InfoPtr; x, y : Integer) : LayerPtr;
  117.     External;
  118.  
  119.