1 #ifndef GRAPHICS_GFXBASE_H
2 #define GRAPHICS_GFXBASE_H
5 Copyright © 1995-2010, The AROS Development Team. All rights reserved.
12 #ifndef EXEC_INTERRUPTS_H
13 # include <exec/interrupts.h>
16 #ifndef EXEC_EXECBASE_H
17 # include <exec/execbase.h>
20 #ifndef EXEC_LIBRARIES_H
21 # include <exec/libraries.h>
25 # include <exec/lists.h>
28 #ifndef GRAPHICS_MONITOR_H
29 # include <graphics/monitor.h>
32 #define GRAPHICSNAME "graphics.library"
36 struct Library LibNode
; /* Standard Library Node */
38 struct View
* ActiView
; /* Currently displayed View */
39 struct copinit
* copinit
; /* Initial copperlist */
42 UWORD
* LOFlist
; /* Copperlists currently on display (pointers to raw instruction streams) */
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 */
53 struct List TextFonts
;
54 struct TextFont
* DefaultFont
; /* System default font */
56 UWORD Modes
; /* Modes of current display (taken from ActiView->Modes) */
67 struct List BlitWaitQ
;
68 struct Task
* BlitOwner
;
69 struct List TOF_WaitQ
;
71 UWORD DisplayFlags
; /* see below */
72 struct SimpleSprite
** SimpleSprites
;
75 UWORD MaxDisplayColumn
;
76 UWORD NormalDisplayRows
;
77 UWORD NormalDisplayColumns
;
81 struct SignalSemaphore
* LastChanceMemory
;
85 UWORD MinDisplayColumn
;
86 UBYTE ChipRevBits0
; /* see below */
87 UBYTE MemType
; /* CHIP memory type, see below */
88 UBYTE crb_reserved
[4];
92 IPTR hedley_sprites
[8];
93 IPTR hedley_sprites1
[8];
98 IPTR
* hash_table
; /* Hashtable used for GfxAssociate() and GfxLookup() (private!) */
99 UWORD current_tot_rows
;
100 UWORD current_tot_cclks
;
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 */
115 struct SignalSemaphore
* ActiViewCprSemaphore
; /* Semaphore for active view access */
117 struct Library
*UtilBase
; /* Library Bases */
118 struct ExecBase
*ExecBase
;
121 UWORD
* StrtFetchMasks
;
122 UWORD
* StopFetchMasks
;
129 UWORD DefaultSpriteWidth
;
133 UBYTE Bugs
; /* Private flags for AmigaOS monitor drivers. Unused by AROS. */
134 ULONG
* gb_LayersBase
; /* layers.library base */
138 ULONG SpecialCounter
;
141 UBYTE ScanDoubledSprites
;
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 */
150 UWORD GfxFlags
; /* Zero, unused by AOS */
153 struct SignalSemaphore
* HashTableSemaphore
; /* Semaphore for hash_table access, private in fact */
156 #define ChunkyToPlanarPtr HWEmul[0]
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 */
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 */
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 */