home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / cbm / os-include.lha / os-include / graphics / gfxbase.h < prev    next >
C/C++ Source or Header  |  1993-10-15  |  5KB  |  192 lines

  1. #ifndef GRAPHICS_GFXBASE_H
  2. #define GRAPHICS_GFXBASE_H
  3. /*
  4. **    $VER: gfxbase.h 39.21 (21.4.93)
  5. **    Includes Release 40.15
  6. **
  7. **    graphics base definitions
  8. **
  9. **    (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. */
  12.  
  13. #ifndef EXEC_LISTS_H
  14. #include <exec/lists.h>
  15. #endif
  16. #ifndef EXEC_LIBRARIES_H
  17. #include <exec/libraries.h>
  18. #endif
  19. #ifndef EXEC_INTERRUPTS_H
  20. #include <exec/interrupts.h>
  21. #endif
  22. #ifndef    GRAPHICS_MONITOR_H
  23. #include <graphics/monitor.h>
  24. #endif
  25.  
  26. struct GfxBase
  27. {
  28.     struct    Library  LibNode;
  29.     struct    View *ActiView;
  30.     struct    copinit *copinit;    /* ptr to copper start up list */
  31.     LONG    *cia;            /* for 8520 resource use */
  32.     LONG    *blitter;        /* for future blitter resource use */
  33.     UWORD    *LOFlist;
  34.     UWORD    *SHFlist;
  35.     struct    bltnode *blthd,*blttl;
  36.     struct    bltnode *bsblthd,*bsblttl;
  37.     struct    Interrupt vbsrv,timsrv,bltsrv;
  38.     struct    List     TextFonts;
  39.     struct    TextFont *DefaultFont;
  40.     UWORD    Modes;            /* copy of current first bplcon0 */
  41.     BYTE    VBlank;
  42.     BYTE    Debug;
  43.     WORD    BeamSync;
  44.     WORD    system_bplcon0;        /* it is ored into each bplcon0 for display */
  45.     UBYTE    SpriteReserved;
  46.     UBYTE    bytereserved;
  47.     UWORD    Flags;
  48.     WORD    BlitLock;
  49.     WORD    BlitNest;
  50.  
  51.     struct    List BlitWaitQ;
  52.     struct    Task *BlitOwner;
  53.     struct    List TOF_WaitQ;
  54.     UWORD    DisplayFlags;        /* NTSC PAL GENLOC etc*/
  55.                     /* flags initialized at power on */
  56.     struct    SimpleSprite **SimpleSprites;
  57.     UWORD    MaxDisplayRow;        /* hardware stuff, do not use */
  58.     UWORD    MaxDisplayColumn;    /* hardware stuff, do not use */
  59.     UWORD    NormalDisplayRows;
  60.     UWORD    NormalDisplayColumns;
  61.     /* the following are for standard non interlace, 1/2 wb width */
  62.     UWORD    NormalDPMX;        /* Dots per meter on display */
  63.     UWORD    NormalDPMY;        /* Dots per meter on display */
  64.     struct    SignalSemaphore *LastChanceMemory;
  65.     UWORD    *LCMptr;
  66.     UWORD    MicrosPerLine;        /* 256 time usec/line */
  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];    /* sprite ptrs for intuition mouse */
  74.     ULONG    hedley_sprites1[8];    /* sprite ptrs for intuition mouse */
  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.     VOID    *DisplayInfoDataBase;
  92.     UWORD    TopLine;
  93.     struct    SignalSemaphore *ActiViewCprSemaphore;
  94.     ULONG    *UtilBase;        /* for hook and tag utilities. had to change because of name clash    */
  95.     ULONG    *ExecBase;        /* to link with rom.lib    */
  96.     UBYTE    *bwshifts;
  97.     UWORD    *StrtFetchMasks;
  98.     UWORD    *StopFetchMasks;
  99.     UWORD    *Overrun;
  100.     WORD    *RealStops;
  101.     UWORD    SpriteWidth;    /* current width (in words) of sprites */
  102.     UWORD    SpriteFMode;        /* current sprite fmode bits    */
  103.     BYTE    SoftSprites;    /* bit mask of size change knowledgeable sprites */
  104.     BYTE    arraywidth;
  105.     UWORD    DefaultSpriteWidth;    /* what width intuition wants */
  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;        /* special for double buffering */
  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.  
  134.  
  135.  
  136.  
  137. /* Values for GfxBase->DisplayFlags */
  138. #define NTSC        1
  139. #define GENLOC        2
  140. #define PAL        4
  141. #define TODA_SAFE    8
  142. #define REALLY_PAL    16    /* what is actual crystal frequency
  143.                  (as opposed to what bootmenu set the agnus to)?
  144.                  (V39) */
  145. #define LPEN_SWAP_FRAMES    32
  146.                 /* LightPen software could set this bit if the
  147.                  * "lpen-with-interlace" fix put in for V39
  148.                  * does not work. This is true of a number of
  149.                  * Agnus chips.
  150.                  * (V40).
  151.                  */
  152.  
  153. #define BLITMSG_FAULT    4
  154.  
  155. /* bits defs for ChipRevBits */
  156. #define    GFXB_BIG_BLITS    0
  157. #define    GFXB_HR_AGNUS    0
  158. #define GFXB_HR_DENISE    1
  159. #define GFXB_AA_ALICE    2
  160. #define GFXB_AA_LISA    3
  161. #define GFXB_AA_MLISA    4    /* internal use only. */
  162.  
  163. #define GFXF_BIG_BLITS    1
  164. #define    GFXF_HR_AGNUS    1
  165. #define GFXF_HR_DENISE    2
  166. #define GFXF_AA_ALICE    4
  167. #define GFXF_AA_LISA    8
  168. #define GFXF_AA_MLISA    16    /* internal use only */
  169.  
  170. /* Pass ONE of these to SetChipRev() */
  171. #define SETCHIPREV_A    GFXF_HR_AGNUS
  172. #define SETCHIPREV_ECS    (GFXF_HR_AGNUS | GFXF_HR_DENISE)
  173. #define SETCHIPREV_AA    (GFXF_AA_ALICE | GFXF_AA_LISA | SETCHIPREV_ECS)
  174. #define SETCHIPREV_BEST 0xffffffff
  175.  
  176. /* memory type */
  177. #define BUS_16        0
  178. #define NML_CAS        0
  179. #define BUS_32        1
  180. #define DBL_CAS        2
  181. #define BANDWIDTH_1X    (BUS_16 | NML_CAS)
  182. #define BANDWIDTH_2XNML    BUS_32
  183. #define BANDWIDTH_2XDBL    DBL_CAS
  184. #define BANDWIDTH_4X    (BUS_32 | DBL_CAS)
  185.  
  186. /* GfxFlags (private) */
  187. #define NEW_DATABASE    1
  188.  
  189. #define GRAPHICSNAME    "graphics.library"
  190.  
  191. #endif    /* GRAPHICS_GFXBASE_H */
  192.