Use TARGET_STRIP instead of STRIP. Needed on OS X.
[AROS.git] / compiler / include / graphics / gfxbase.h
blob264295d854cb942b09699b8da33c7fc955d4c02d
1 #ifndef GRAPHICS_GFXBASE_H
2 #define GRAPHICS_GFXBASE_H
4 /*
5 Copyright © 1995-2010, The AROS Development Team. All rights reserved.
6 $Id$
8 Desc: graphics.library
9 Lang: english
12 #ifndef EXEC_INTERRUPTS_H
13 # include <exec/interrupts.h>
14 #endif
16 #ifndef EXEC_EXECBASE_H
17 # include <exec/execbase.h>
18 #endif
20 #ifndef EXEC_LIBRARIES_H
21 # include <exec/libraries.h>
22 #endif
24 #ifndef EXEC_LISTS_H
25 # include <exec/lists.h>
26 #endif
28 #ifndef GRAPHICS_MONITOR_H
29 # include <graphics/monitor.h>
30 #endif
32 #define GRAPHICSNAME "graphics.library"
34 struct GfxBase
36 struct Library LibNode; /* Standard Library Node */
38 struct View * ActiView; /* Currently displayed View */
39 struct copinit * copinit; /* Initial copperlist */
40 LONG * cia;
41 LONG * blitter;
42 UWORD * LOFlist; /* Copperlists currently on display (pointers to raw instruction streams) */
43 UWORD * SHFlist;
44 struct bltnode * blthd;
45 struct bltnode * blttl;
46 struct bltnode * bsblthd;
47 struct bltnode * bsblttl;
48 struct Interrupt vbsrv; /* VBLank IntServer */
49 struct Interrupt timsrv; /* Timer IntServer */
50 struct Interrupt bltsrv; /* Blitter IntServer */
52 /* Fonts */
53 struct List TextFonts;
54 struct TextFont * DefaultFont; /* System default font */
56 UWORD Modes; /* Modes of current display (taken from ActiView->Modes) */
57 BYTE VBlank;
58 BYTE Debug;
59 WORD BeamSync;
60 WORD system_bplcon0 ;
61 UBYTE SpriteReserved;
62 UBYTE bytereserved;
63 UWORD Flags;
64 WORD BlitLock;
65 WORD BlitNest;
67 struct List BlitWaitQ;
68 struct Task * BlitOwner;
69 struct List TOF_WaitQ;
71 UWORD DisplayFlags; /* see below */
72 struct SimpleSprite ** SimpleSprites;
74 UWORD MaxDisplayRow;
75 UWORD MaxDisplayColumn;
76 UWORD NormalDisplayRows;
77 UWORD NormalDisplayColumns;
78 UWORD NormalDPMX;
79 UWORD NormalDPMY;
81 struct SignalSemaphore * LastChanceMemory;
83 UWORD * LCMptr;
84 UWORD MicrosPerLine;
85 UWORD MinDisplayColumn;
86 UBYTE ChipRevBits0; /* see below */
87 UBYTE MemType; /* CHIP memory type, see below */
88 UBYTE crb_reserved[4];
89 UWORD monitor_id;
91 IPTR hedley[8];
92 IPTR hedley_sprites[8];
93 IPTR hedley_sprites1[8];
94 WORD hedley_count;
95 UWORD hedley_flags;
96 WORD hedley_tmp;
98 IPTR * hash_table; /* Hashtable used for GfxAssociate() and GfxLookup() (private!) */
99 UWORD current_tot_rows;
100 UWORD current_tot_cclks;
101 UBYTE hedley_hint;
102 UBYTE hedley_hint2;
103 ULONG nreserved[4];
104 LONG * a2024_sync_raster;
105 UWORD control_delta_pal;
106 UWORD control_delta_ntsc;
108 struct MonitorSpec * current_monitor; /* MonitorSpec used for current display */
109 struct List MonitorList; /* List of all MonitorSpecs in the system */
110 struct MonitorSpec * default_monitor; /* MonitorSpec of "default.monitor" */
111 struct SignalSemaphore * MonitorListSemaphore; /* Semaphore for MonitorList access */
113 VOID * DisplayInfoDataBase; /* NULL, unused by AROS */
114 UWORD TopLine;
115 struct SignalSemaphore * ActiViewCprSemaphore; /* Semaphore for active view access */
117 struct Library *UtilBase; /* Library Bases */
118 struct ExecBase *ExecBase;
120 BYTE * bwshifts;
121 UWORD * StrtFetchMasks;
122 UWORD * StopFetchMasks;
123 UWORD * Overrun;
124 WORD * RealStops;
125 UWORD SpriteWidth;
126 UWORD SpriteFMode;
127 BYTE SoftSprites;
128 BYTE arraywidth;
129 UWORD DefaultSpriteWidth;
130 BYTE SprMoveDisable;
131 UBYTE WantChips;
132 UBYTE BoardMemType;
133 UBYTE Bugs; /* Private flags for AmigaOS monitor drivers. Unused by AROS. */
134 ULONG * gb_LayersBase; /* layers.library base */
135 ULONG ColorMask;
136 APTR IVector;
137 APTR IData;
138 ULONG SpecialCounter;
139 APTR DBList;
140 UWORD MonitorFlags;
141 UBYTE ScanDoubledSprites;
142 UBYTE BP3Bits;
144 struct AnalogSignalInterval MonitorVBlank;
145 struct MonitorSpec * natural_monitor; /* Default MonitorSpec for view without explicit MonitorSpec in ViewExtra */
147 APTR ProgData; /* NULL, unused by AROS */
148 UBYTE ExtSprites;
149 UBYTE pad3;
150 UWORD GfxFlags; /* Zero, unused by AOS */
151 ULONG VBCounter;
153 struct SignalSemaphore * HashTableSemaphore; /* Semaphore for hash_table access, private in fact */
154 ULONG * HWEmul[9];
156 #define ChunkyToPlanarPtr HWEmul[0]
159 * DisplayFlags
160 * Specify some system-wide options for Amiga(tm) chipset
162 #define NTSC (1<<0) /* Default mode is NTSC */
163 #define GENLOC (1<<1) /* Genlock is in use */
164 #define PAL (1<<2) /* Default mode is PAL */
165 #define TODA_SAFE (1<<3)
166 #define REALLY_PAL (1<<4)
167 #define LPEN_SWAP_FRAMES (1<<5) /* When light pen is being used on interlaced screens, swap even and odd frames */
169 /* ChipRevBits */
170 #define GFXB_BIG_BLITS 0
171 #define GFXF_BIG_BLITS (1<<0)
172 #define GFXB_HR_AGNUS 0
173 #define GFXF_HR_AGNUS (1<<0)
174 #define GFXB_HR_DENISE 1
175 #define GFXF_HR_DENISE (1<<1)
176 #define GFXB_AA_ALICE 2
177 #define GFXF_AA_ALICE (1<<2)
178 #define GFXB_AA_LISA 3
179 #define GFXF_AA_LISA (1<<3)
180 #define GFXB_AA_MLISA 4
181 #define GFXF_AA_MLISA (1<<4)
183 /* For use in SetChipRev() */
184 #define SETCHIPREV_A GFXF_HR_AGNUS
185 #define SETCHIPREV_ECS (GFXF_HR_AGNUS | GFXF_HR_DENISE)
186 #define SETCHIPREV_AA (SETCHIPREV_ECS | GFXF_AA_ALICE | GFXF_AA_LISA)
187 #define SETCHIPREV_BEST 0xFFFFFFFF
189 /* Memory type flags */
190 #define BUS_16 0
191 #define BUS_32 1
192 #define NML_CAS 0
193 #define DBL_CAS 2
195 #define BANDWIDTH_1X (BUS_16 | NML_CAS)
196 #define BANDWIDTH_2XNML BUS_32
197 #define BANDWIDTH_2XDBL DBL_CAS
198 #define BANDWIDTH_4X (BUS_32 | DBL_CAS)
200 #define BLITMSG_FAULT 4
202 /* GfxFlags. Private for AmigaOS(tm), unused by AROS. */
203 #define NEW_DATABASE 1
205 #endif /* GRAPHICS_GFXBASE_H */