1 #ifndef GRAPHICS_GFXBASE_H
    2 #define GRAPHICS_GFXBASE_H
    3 
    4 /*
    5 	graphics.library include
    6 
    7 	Copyright © 2002 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #ifndef EXEC_LISTS_H
   11 # include <exec/lists.h>
   12 #endif
   13 
   14 #ifndef EXEC_LIBRARIES_H
   15 # include <exec/libraries.h>
   16 #endif
   17 
   18 #ifndef EXEC_INTERRUPTS_H
   19 # include <exec/interrupts.h>
   20 #endif
   21 
   22 #ifndef GRAPHICS_MONITOR_H
   23 # include <graphics/monitor.h>
   24 #endif
   25 
   26 #pragma pack(2)
   27 
   28 
   29 struct GfxBase
   30 {
   31 	struct Library                LibNode;
   32 	struct View                  *ActiView;
   33 	struct copinit               *copinit;
   34 	LONG                         *cia;
   35 	LONG                         *blitter;
   36 	UWORD                        *LOFlist;
   37 	UWORD                        *SHFlist;
   38 	struct bltnode               *blthd, *blttl;
   39 	struct bltnode               *bsblthd, *bsblttl;
   40 	struct Interrupt              vbsrv, timsrv, bltsrv;
   41 	struct List                   TextFonts;
   42 	struct TextFont              *DefaultFont;
   43 	UWORD                         Modes;
   44 	BYTE                          VBlank;
   45 	BYTE                          Debug;
   46 	WORD                          BeamSync;
   47 	WORD                          system_bplcon0;
   48 	UBYTE                         SpriteReserved;
   49 	UBYTE                         bytereserved;
   50 	UWORD                         Flags;
   51 	WORD                          BlitLock;
   52 	WORD                          BlitNest;
   53 	struct List                   BlitWaitQ;
   54 	struct Task                  *BlitOwner;
   55 	struct List                   TOF_WaitQ;
   56 	UWORD                         DisplayFlags;
   57 	struct SimpleSprite         **SimpleSprites;
   58 	UWORD                         MaxDisplayRow;
   59 	UWORD                         MaxDisplayColumn;
   60 	UWORD                         NormalDisplayRows;
   61 	UWORD                         NormalDisplayColumns;
   62 	UWORD                         NormalDPMX;
   63 	UWORD                         NormalDPMY;
   64 	struct SignalSemaphore       *LastChanceMemory;
   65 	UWORD                        *LCMptr;
   66 	UWORD                         MicrosPerLine;
   67 	UWORD                         MinDisplayColumn;
   68 	UBYTE                         ChipRevBits0;
   69 	UBYTE                         MemType;
   70 	UBYTE                         crb_reserved[4];
   71 	UWORD                         monitor_id;
   72 	ULONG                         hedley[8];
   73 	ULONG                         hedley_sprites[8];
   74 	ULONG                         hedley_sprites1[8];
   75 	WORD                          hedley_count;
   76 	UWORD                         hedley_flags;
   77 	WORD                          hedley_tmp;
   78 	LONG                         *hash_table;
   79 	UWORD                         current_tot_rows;
   80 	UWORD                         current_tot_cclks;
   81 	UBYTE                         hedley_hint;
   82 	UBYTE                         hedley_hint2;
   83 	ULONG                         nreserved[4];
   84 	LONG                         *a2024_sync_raster;
   85 	UWORD                         control_delta_pal;
   86 	UWORD                         control_delta_ntsc;
   87 	struct MonitorSpec           *current_monitor;
   88 	struct List                   MonitorList;
   89 	struct MonitorSpec           *default_monitor;
   90 	struct SignalSemaphore       *MonitorListSemaphore;
   91 	APTR                          DisplayInfoDataBase;
   92 	UWORD                         TopLine;
   93 	struct SignalSemaphore       *ActiViewCprSemaphore;
   94 	ULONG                        *UtilBase;
   95 	ULONG                        *ExecBase;
   96 	UBYTE                        *bwshifts;
   97 	UWORD                        *StrtFetchMasks;
   98 	UWORD                        *StopFetchMasks;
   99 	UWORD                        *Overrun;
  100 	WORD                         *RealStops;
  101 	UWORD                         SpriteWidth;
  102 	UWORD                         SpriteFMode;
  103 	BYTE                          SoftSprites;
  104 	BYTE                          arraywidth;
  105 	UWORD                         DefaultSpriteWidth;
  106 	BYTE                          SprMoveDisable;
  107 	UBYTE                         WantChips;
  108 	UBYTE                         BoardMemType;
  109 	UBYTE                         Bugs;
  110 	ULONG                        *gb_LayersBase;
  111 	ULONG                         ColorMask;
  112 	APTR                          IVector;
  113 	APTR                          IData;
  114 	ULONG                         SpecialCounter;
  115 	APTR                          DBList;
  116 	UWORD                         MonitorFlags;
  117 	UBYTE                         ScanDoubledSprites;
  118 	UBYTE                         BP3Bits;
  119 	struct AnalogSignalInterval   MonitorVBlank;
  120 	struct MonitorSpec           *natural_monitor;
  121 	APTR                          ProgData;
  122 	UBYTE                         ExtSprites;
  123 	UBYTE                         pad3;
  124 	UWORD                         GfxFlags;
  125 	ULONG                         VBCounter;
  126 	struct SignalSemaphore       *HashTableSemaphore;
  127 	ULONG                        *HWEmul[9];
  128 };
  129 
  130 #define ChunkyToPlanarPtr  HWEmul[0]
  131 
  132 
  133 #define NTSC              1
  134 #define GENLOC            2
  135 #define PAL               4
  136 #define TODA_SAFE         8
  137 #define REALLY_PAL        16
  138 #define LPEN_SWAP_FRAMES  32
  139 
  140 
  141 #define BLITMSG_FAULT  4
  142 
  143 
  144 #define GFXB_BIG_BLITS  0
  145 #define GFXB_HR_AGNUS   0
  146 #define GFXB_HR_DENISE  1
  147 #define GFXB_AA_ALICE   2
  148 #define GFXB_AA_LISA    3
  149 #define GFXB_AA_MLISA   4
  150 
  151 #define GFXF_BIG_BLITS  (1<<GFXB_BIG_BLITS)
  152 #define GFXF_HR_AGNUS   (1<<GFXB_HR_AGNUS)
  153 #define GFXF_HR_DENISE  (1<<GFXB_HR_DENISE)
  154 #define GFXF_AA_ALICE   (1<<GFXB_AA_ALICE)
  155 #define GFXF_AA_LISA    (1<<GFXB_AA_LISA)
  156 #define GFXF_AA_MLISA   (1<<GFXB_AA_MLISA)
  157 
  158 
  159 #define SETCHIPREV_A     (GFXF_HR_AGNUS)
  160 #define SETCHIPREV_ECS   (GFXF_HR_AGNUS | GFXF_HR_DENISE)
  161 #define SETCHIPREV_AA    (GFXF_AA_ALICE | GFXF_AA_LISA | SETCHIPREV_ECS)
  162 #define SETCHIPREV_BEST  0xFFFFFFFF
  163 
  164 
  165 #define BUS_16   0
  166 #define NML_CAS  0
  167 #define BUS_32   1
  168 #define DBL_CAS  2
  169 
  170 #define BANDWIDTH_1X     (BUS_16 | NML_CAS)
  171 #define BANDWIDTH_2XNML  (BUS_32)
  172 #define BANDWIDTH_2XDBL  (DBL_CAS)
  173 #define BANDWIDTH_4X     (BUS_32 | DBL_CAS)
  174 
  175 
  176 #define NEW_DATABASE  1
  177 
  178 
  179 #define GRAPHICSNAME  "graphics.library"
  180 
  181 
  182 #pragma pack()
  183 
  184 #endif /* GRAPHICS_GFXBASE_H */