home *** CD-ROM | disk | FTP | other *** search
- unit Layers;
-
- INTERFACE
- uses Exec, Graphics;
-
-
- var
- LayersBase: pLibrary;
-
-
- procedure InitLayers (li: pLayer_Info);
- function CreateUpfrontLayer
- (li: pLayer_Info;
- bm: pBitMap;
- x0: longint;
- y0: longint;
- x1: longint;
- y1: longint;
- flags: longint;
- bm2: pBitMap): pLayer;
-
- function CreateBehindLayer
- (li: pLayer_Info;
- bm: pBitMap;
- x0: longint;
- y0: longint;
- x1: longint;
- y1: longint;
- flags: longint;
- bm2: pBitMap): pLayer;
-
- function UpfrontLayer
- (li: longint;
- layer: pLayer): longint;
-
- function BehindLayer
- (li: longint;
- layer: pLayer): longint;
-
- function MoveLayer
- (li: longint;
- layer: pLayer;
- dx: longint;
- dy: longint): longint;
-
- function SizeLayer
- (li: longint;
- layer: pLayer;
- dx: longint;
- dy: longint): longint;
-
- procedure ScrollLayer
- (li: longint;
- layer: pLayer;
- dx: longint;
- dy: longint);
-
- function BeginUpdate (layer: pLayer): boolean;
- procedure EndUpdate
- (layer: pLayer;
- flag: word);
-
- function DeleteLayer
- (li: longint;
- layer: pLayer): longint;
-
- procedure LockLayer
- (li: longint;
- layer: pLayer);
-
- procedure UnlockLayer (layer: pLayer);
- procedure LockLayers (li: pLayer_Info);
- procedure UnlockLayers (li: pLayer_Info);
- procedure LockLayerInfo (li: pLayer_Info);
- procedure SwapBitsRastPortClipRect
- (rp: pRastPort;
- cr: pClipRect);
-
- function WhichLayer
- (li: pLayer_Info;
- x: integer;
- y: integer): pLayer;
-
- procedure UnlockLayerInfo (li: pLayer_Info);
- function NewLayerInfo: pLayer_Info;
- procedure DisposeLayerInfo (li: pLayer_Info);
- function FattenLayerInfo (li: pLayer_Info): longint;
- procedure ThinLayerInfo (li: pLayer_Info);
- function MoveLayerInFrontOf
- (layer_to_move: pLayer;
- layer_to_be_infront_of: pLayer): longint;
-
- function InstallClipRegion
- (layer: pLayer;
- region: pRegion): pRegion;
-
-
-
- IMPLEMENTATION
- procedure InitLayers; xassembler;
- asm
- move.l a6,-(sp)
- move.l 8(sp),a0
- move.l LayersBase,a6
- jsr -$1E(a6)
- move.l (sp)+,a6
- end;
-
- function CreateUpfrontLayer; xassembler;
- asm
- movem.l d3-d4/a2/a6,-(sp)
- lea $14(sp),a6
- move.l (a6)+,a2
- move.l (a6)+,d4
- move.l (a6)+,d3
- move.l (a6)+,d2
- move.l (a6)+,d1
- move.l (a6)+,d0
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$24(a6)
- move.l d0,$34(sp)
- movem.l (sp)+,d3-d4/a2/a6
- end;
-
- function CreateBehindLayer; xassembler;
- asm
- movem.l d3-d4/a2/a6,-(sp)
- lea $14(sp),a6
- move.l (a6)+,a2
- move.l (a6)+,d4
- move.l (a6)+,d3
- move.l (a6)+,d2
- move.l (a6)+,d1
- move.l (a6)+,d0
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$2A(a6)
- move.l d0,$34(sp)
- movem.l (sp)+,d3-d4/a2/a6
- end;
-
- function UpfrontLayer; xassembler;
- asm
- move.l a6,-(sp)
- lea 8(sp),a6
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$30(a6)
- move.l d0,$10(sp)
- move.l (sp)+,a6
- end;
-
- function BehindLayer; xassembler;
- asm
- move.l a6,-(sp)
- lea 8(sp),a6
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$36(a6)
- move.l d0,$10(sp)
- move.l (sp)+,a6
- end;
-
- function MoveLayer; xassembler;
- asm
- move.l a6,-(sp)
- lea 8(sp),a6
- move.l (a6)+,d1
- move.l (a6)+,d0
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$3C(a6)
- move.l d0,$18(sp)
- move.l (sp)+,a6
- end;
-
- function SizeLayer; xassembler;
- asm
- move.l a6,-(sp)
- lea 8(sp),a6
- move.l (a6)+,d1
- move.l (a6)+,d0
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$42(a6)
- move.l d0,$18(sp)
- move.l (sp)+,a6
- end;
-
- procedure ScrollLayer; xassembler;
- asm
- move.l a6,-(sp)
- lea 8(sp),a6
- move.l (a6)+,d1
- move.l (a6)+,d0
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$48(a6)
- move.l (sp)+,a6
- end;
-
- function BeginUpdate; xassembler;
- asm
- move.l a6,-(sp)
- move.l 8(sp),a0
- move.l LayersBase,a6
- jsr -$4E(a6)
- tst.l d0
- sne d0
- neg.b d0
- move.b d0,$C(sp)
- move.l (sp)+,a6
- end;
-
- procedure EndUpdate; xassembler;
- asm
- move.l a6,-(sp)
- lea 8(sp),a6
- move.w (a6)+,d0
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$54(a6)
- move.l (sp)+,a6
- end;
-
- function DeleteLayer; xassembler;
- asm
- move.l a6,-(sp)
- lea 8(sp),a6
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$5A(a6)
- move.l d0,$10(sp)
- move.l (sp)+,a6
- end;
-
- procedure LockLayer; xassembler;
- asm
- move.l a6,-(sp)
- lea 8(sp),a6
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$60(a6)
- move.l (sp)+,a6
- end;
-
- procedure UnlockLayer; xassembler;
- asm
- move.l a6,-(sp)
- move.l 8(sp),a0
- move.l LayersBase,a6
- jsr -$66(a6)
- move.l (sp)+,a6
- end;
-
- procedure LockLayers; xassembler;
- asm
- move.l a6,-(sp)
- move.l 8(sp),a0
- move.l LayersBase,a6
- jsr -$6C(a6)
- move.l (sp)+,a6
- end;
-
- procedure UnlockLayers; xassembler;
- asm
- move.l a6,-(sp)
- move.l 8(sp),a0
- move.l LayersBase,a6
- jsr -$72(a6)
- move.l (sp)+,a6
- end;
-
- procedure LockLayerInfo; xassembler;
- asm
- move.l a6,-(sp)
- move.l 8(sp),a0
- move.l LayersBase,a6
- jsr -$78(a6)
- move.l (sp)+,a6
- end;
-
- procedure SwapBitsRastPortClipRect; xassembler;
- asm
- move.l a6,-(sp)
- lea 8(sp),a6
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$7E(a6)
- move.l (sp)+,a6
- end;
-
- function WhichLayer; xassembler;
- asm
- move.l a6,-(sp)
- lea 8(sp),a6
- move.w (a6)+,d1
- move.w (a6)+,d0
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$84(a6)
- move.l d0,$10(sp)
- move.l (sp)+,a6
- end;
-
- procedure UnlockLayerInfo; xassembler;
- asm
- move.l a6,-(sp)
- move.l 8(sp),a0
- move.l LayersBase,a6
- jsr -$8A(a6)
- move.l (sp)+,a6
- end;
-
- function NewLayerInfo; xassembler;
- asm
- move.l a6,-(sp)
- move.l LayersBase,a6
- jsr -$90(a6)
- move.l d0,8(sp)
- move.l (sp)+,a6
- end;
-
- procedure DisposeLayerInfo; xassembler;
- asm
- move.l a6,-(sp)
- move.l 8(sp),a0
- move.l LayersBase,a6
- jsr -$96(a6)
- move.l (sp)+,a6
- end;
-
- function FattenLayerInfo; xassembler;
- asm
- move.l a6,-(sp)
- move.l 8(sp),a0
- move.l LayersBase,a6
- jsr -$9C(a6)
- move.l d0,$C(sp)
- move.l (sp)+,a6
- end;
-
- procedure ThinLayerInfo; xassembler;
- asm
- move.l a6,-(sp)
- move.l 8(sp),a0
- move.l LayersBase,a6
- jsr -$A2(a6)
- move.l (sp)+,a6
- end;
-
- function MoveLayerInFrontOf; xassembler;
- asm
- move.l a6,-(sp)
- lea 8(sp),a6
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$A8(a6)
- move.l d0,$10(sp)
- move.l (sp)+,a6
- end;
-
- function InstallClipRegion; xassembler;
- asm
- move.l a6,-(sp)
- lea 8(sp),a6
- move.l (a6)+,a1
- move.l (a6)+,a0
- move.l LayersBase,a6
- jsr -$AE(a6)
- move.l d0,$10(sp)
- move.l (sp)+,a6
- end;
-
- end.
-