Updated PCI IDs to latest snapshot.
[tangerine.git] / rom / hyperlayers / layers_intern.h
blob7084b08b9c5cf441229a427e08c97a057391d167
1 /*
2 Copyright © 1995-2006, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: Internal information for layers.library.
6 Lang:
7 */
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>
18 #include <setjmp.h>
19 #include <dos/dos.h> /* BPTR below */
21 #include LC_LIBDEFS_FILE
24 #include "../graphics/intregions.h"
26 LIBBASETYPE
28 struct Library lb_LibNode;
30 struct SignalSemaphore lb_MemLock;
31 APTR lb_ClipRectPool;
34 struct IntLayer
36 struct Layer lay;
37 struct Hook *shapehook;
38 ULONG intflags;
41 #define IL(x) ((struct IntLayer *)(x))
43 #define INTFLAG_AVOID_BACKFILL 1
45 struct LayerInfo_extra
47 #if 0
48 ULONG lie_ReturnAddr; // used by setjmp/longjmp, equals jmp_buf
49 ULONG lie_Regs[12]; // D2-D7/A2-SP
50 #else
51 jmp_buf lie_JumpBuf;
52 #endif
53 struct MinList lie_ResourceList;
54 UBYTE lie_pad[4];
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.
64 #define RD_REGION -1
65 #define RD_BITMAP -2
67 struct ResData
69 void *ptr;
70 ULONG Size;
73 struct ResourceNode
75 struct Node rn_Link;
76 struct ResData *rn_FirstFree;
77 LONG rn_FreeCnt;
78 struct ResData rn_Data[48];
83 ** The smart refresh flag is set for super bitmap as well as smart refresh
84 ** layers
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,
92 struct Layer *lfront,
93 LIBBASETYPEPTR LayersBase);
94 int _MoveLayerToFront(struct Layer * l,
95 struct Layer * lbehind,
96 LIBBASETYPEPTR LayersBase);
99 #endif /* _LAYERS_INTERN_H */