1 #ifndef CLIB_LAYERS_PROTOS_H 2 #define CLIB_LAYERS_PROTOS_H 3 4 /* 5 layers.library C prototypes 6 7 Copyright © 2002 The MorphOS Development Team, All Rights Reserved. 8 */ 9 10 #ifndef EXEC_TYPES_H 11 # include <exec/types.h> 12 #endif 13 14 #ifndef GRAPHICS_LAYERS_H 15 # include <graphics/layers.h> 16 #endif 17 18 #ifndef GRAPHICS_CLIP_H 19 # include <graphics/clip.h> 20 #endif 21 22 #ifndef GRAPHICS_RASTPORT_H 23 # include <graphics/rastport.h> 24 #endif 25 26 #ifndef GRAPHICS_REGIONS_H 27 # include <graphics/regions.h> 28 #endif 29 30 #ifndef UTILITY_TAGITEM_H 31 # include <utility/tagitem.h> 32 #endif 33 34 #ifdef __cplusplus 35 extern "C" { 36 #endif /* __cplusplus */ 37 38 VOID InitLayers( struct Layer_Info *li ); 39 struct Layer *CreateUpfrontLayer( struct Layer_Info *li, struct BitMap *bm, LONG x0, LONG y0, LONG x1, LONG y1, LONG flags, struct BitMap *bm2 ); 40 struct Layer *CreateBehindLayer( struct Layer_Info *li, struct BitMap *bm, LONG x0, LONG y0, LONG x1, LONG y1, LONG flags, struct BitMap *bm2 ); 41 LONG UpfrontLayer( LONG dummy, struct Layer *layer ); 42 LONG BehindLayer( LONG dummy, struct Layer *layer ); 43 LONG MoveLayer( LONG dummy, struct Layer *layer, LONG dx, LONG dy ); 44 LONG SizeLayer( LONG dummy, struct Layer *layer, LONG dx, LONG dy ); 45 VOID ScrollLayer( LONG dummy, struct Layer *layer, LONG dx, LONG dy ); 46 LONG BeginUpdate( struct Layer *l ); 47 VOID EndUpdate( struct Layer *layer, ULONG flag ); 48 LONG DeleteLayer( LONG dummy, struct Layer *layer ); 49 VOID LockLayer( LONG dummy, struct Layer *layer ); 50 VOID UnlockLayer( struct Layer *layer ); 51 VOID LockLayers( struct Layer_Info *li ); 52 VOID UnlockLayers( struct Layer_Info *li ); 53 VOID LockLayerInfo( struct Layer_Info *li ); 54 VOID SwapBitsRastPortClipRect( struct RastPort *rp, struct ClipRect *cr ); 55 struct Layer *WhichLayer( struct Layer_Info *li, LONG x, LONG y ); 56 VOID UnlockLayerInfo( struct Layer_Info *li ); 57 struct Layer_Info *NewLayerInfo( VOID ); 58 VOID DisposeLayerInfo( struct Layer_Info *li ); 59 LONG FattenLayerInfo( struct Layer_Info *li ); 60 VOID ThinLayerInfo( struct Layer_Info *li ); 61 LONG MoveLayerInFrontOf( struct Layer *layer_to_move, struct Layer *other_layer ); 62 struct Region *InstallClipRegion( struct Layer *layer, CONST struct Region *region ); 63 LONG MoveSizeLayer( struct Layer *layer, LONG dx, LONG dy, LONG dw, LONG dh ); 64 struct Layer *CreateUpfrontHookLayer( struct Layer_Info *li, struct BitMap *bm, LONG x0, LONG y0, LONG x1, LONG y1, LONG flags, struct Hook *hook, struct BitMap *bm2 ); 65 struct Layer *CreateBehindHookLayer( struct Layer_Info *li, struct BitMap *bm, LONG x0, LONG y0, LONG x1, LONG y1, LONG flags, struct Hook *hook, struct BitMap *bm2 ); 66 struct Hook *InstallLayerHook( struct Layer *layer, struct Hook *hook ); 67 struct Hook *InstallLayerInfoHook( struct Layer_Info *li, CONST struct Hook *hook ); 68 VOID SortLayerCR( struct Layer *layer, LONG dx, LONG dy ); 69 VOID DoHookClipRects( struct Hook *hook, struct RastPort *rport, CONST struct Rectangle *rect ); 70 71 /*** V50 (MorphOS) ***/ 72 73 struct Layer *CreateUpfrontLayerTagList( struct Layer_Info *li, struct BitMap *bm, LONG x0, LONG y0, LONG x1, LONG y1, LONG flags, struct TagItem *taglist ); 74 struct Layer *CreateBehindLayerTagList( struct Layer_Info *li, struct BitMap *bm, LONG x0, LONG y0, LONG x1, LONG y1, LONG flags, struct TagItem *taglist ); 75 76 /*** V52 (MorphOS) ***/ 77 78 79 struct Layer *WhichLayerBehindLayer( struct Layer *l, LONG x, LONG y ); 80 BOOL IsLayerVisible( struct Layer *l ); 81 82 83 BOOL RenderLayerInfoTagList( struct Layer_Info *li, struct TagItem *tags ); 84 #if !defined(USE_INLINE_STDARG) 85 BOOL RenderLayerInfoTags( struct Layer_Info *li, Tag tag1, ...); 86 #endif 87 88 VOID LockLayerUpdates( struct Layer *l ); 89 VOID UnlockLayerUpdates( struct Layer *l ); 90 91 BOOL IsVisibleInLayer( struct Layer *l, LONG x0, LONG y0, LONG x1, LONG y1); 92 BOOL IsLayerHitable( struct Layer *l ); 93 94 #ifdef __cplusplus 95 } 96 #endif /* __cplusplus */ 97 98 99 #endif /* CLIB_LAYERS_PROTOS_H */