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 */