2 Copyright © 1995-2006, The AROS Development Team. All rights reserved.
5 Desc: Internal information for layers.library.
8 #ifndef _LAYERS_INTERN_H_
9 #define _LAYERS_INTERN_H_
11 #include <exec/types.h>
12 #include <exec/lists.h>
13 #include <exec/libraries.h>
14 #include <graphics/gfx.h>
15 #include <graphics/rastport.h>
16 #include <graphics/clip.h>
17 #include <graphics/layers.h>
19 #include <dos/dos.h> /* BPTR below */
21 #include LC_LIBDEFS_FILE
24 #include "../graphics/intregions.h"
28 struct Library lb_LibNode
;
30 struct SignalSemaphore lb_MemLock
;
37 struct Hook
*shapehook
;
41 #define IL(x) ((struct IntLayer *)(x))
43 #define INTFLAG_AVOID_BACKFILL 1
45 struct LayerInfo_extra
48 ULONG lie_ReturnAddr
; // used by setjmp/longjmp, equals jmp_buf
49 ULONG lie_Regs
[12]; // D2-D7/A2-SP
53 struct MinList lie_ResourceList
;
58 * These are special types of ResData resources. If layers finds one of
59 * these values in ResData->Size, it performs some special handling to
60 * properly dispose of the allocated Region or BitMap, respectively
61 * (throught DisposeRegion or FreeBitMap). In all other cases,
62 * ResData->Size is an argument for a freemem operation.
76 struct ResData
*rn_FirstFree
;
78 struct ResData rn_Data
[48];
83 ** The smart refresh flag is set for super bitmap as well as smart refresh
86 #define IS_SIMPLEREFRESH(l) (0 != ((l)->Flags & LAYERSIMPLE))
87 #define IS_SMARTREFRESH(l) (LAYERSMART == ((l)->Flags & (LAYERSMART|LAYERSUPER)))
88 #define IS_SUPERREFRESH(l) (0 != ((l)->Flags & LAYERSUPER))
91 int _MoveLayerBehind(struct Layer
*l
,
93 LIBBASETYPEPTR LayersBase
);
94 int _MoveLayerToFront(struct Layer
* l
,
95 struct Layer
* lbehind
,
96 LIBBASETYPEPTR LayersBase
);
99 #endif /* _LAYERS_INTERN_H */