[Contents] [Index] [Help] [Retrace] [browse <] [Browse >]

#ifndef GRAPHICS_GFXBASE_H
#define GRAPHICS_GFXBASE_H
/*
**      $Filename: graphics/gfxbase.h $
**      $Release: 2.04 Includes, V37.4 $
**      $Revision: 37.3 $
**      $Date: 91/04/15 $
**
**      graphics base definitions
**
**      (C) Copyright 1985-1999 Amiga, Inc.
**          All Rights Reserved
*/

#ifndef EXEC_LISTS_H
#include <exec/lists.h>
#endif
#ifndef EXEC_LIBRARIES_H
#include <exec/libraries.h>
#endif
#ifndef EXEC_INTERRUPTS_H
#include <exec/interrupts.h>
#endif

struct GfxBase
{
    struct Library  LibNode;
    struct View *ActiView;
    struct copinit *copinit;   /* ptr to copper start up list */
    long    *cia;              /* for 8520 resource use */
    long    *blitter;          /* for future blitter resource use */
    UWORD   *LOFlist;
    UWORD   *SHFlist;
    struct bltnode *blthd,*blttl;
    struct bltnode *bsblthd,*bsblttl;
    struct Interrupt vbsrv,timsrv,bltsrv;
    struct List     TextFonts;
    struct  TextFont *DefaultFont;
    UWORD  Modes;                      /* copy of current first bplcon0 */
    BYTE VBlank;
    BYTE Debug;
    WORD BeamSync;
    WORD system_bplcon0;       /* it is ored into each bplcon0 for display */
    UBYTE   SpriteReserved;
    UBYTE   bytereserved;
    UWORD   Flags;
    WORD   BlitLock;
        WORD    BlitNest;

       struct  List    BlitWaitQ;
       struct  Task    *BlitOwner;
       struct  List    TOF_WaitQ;
        UWORD   DisplayFlags;           /* NTSC PAL GENLOC etc*/
                                       /* flags initialized at power on */
       struct SimpleSprite **SimpleSprites;
       UWORD   MaxDisplayRow;          /* hardware stuff, do not use */
       UWORD   MaxDisplayColumn;       /* hardware stuff, do not use */
       UWORD   NormalDisplayRows;
        UWORD   NormalDisplayColumns;
       /* the following are for standard non interlace, 1/2 wb width */
       UWORD   NormalDPMX;             /* Dots per meter on display */
       UWORD   NormalDPMY;             /* Dots per meter on display */
       struct  SignalSemaphore *LastChanceMemory;
       UWORD   *LCMptr;
       UWORD   MicrosPerLine;          /* 256 time usec/line */
       UWORD   MinDisplayColumn;
       UBYTE   ChipRevBits0;
       UBYTE   crb_reserved[5];
       UWORD   monitor_id;             /* normally null */
       ULONG   hedley[8];
       ULONG   hedley_sprites[8] ;     /* sprite ptrs for intuition mouse */
       ULONG   hedley_sprites1[8] ;            /* sprite ptrs for intuition mouse */
       WORD    hedley_count;
       UWORD   hedley_flags;
       WORD    hedley_tmp;
       LONG    *hash_table;
       UWORD   current_tot_rows;
       UWORD   current_tot_cclks;
       UBYTE   hedley_hint;
       UBYTE   hedley_hint2;
       ULONG   nreserved[4];
       LONG    *a2024_sync_raster;
       WORD   control_delta_pal;
       WORD   control_delta_ntsc;
       struct  MonitorSpec *current_monitor;
       struct  List MonitorList;
       struct  MonitorSpec *default_monitor;
       struct  SignalSemaphore *MonitorListSemaphore;
       VOID    *DisplayInfoDataBase;
       WORD    lapad;                  /* alignment */
       struct  SignalSemaphore *ActiViewCprSemaphore;
        ULONG   *UtilityBase;           /* for hook and tag utilities   */
        ULONG   *ExecBase;              /* to link with rom.lib */
       };

#define NTSC           1
#define GENLOC         2
#define PAL             4
#define TODA_SAFE      8

#define BLITMSG_FAULT   4

/* bits defs for ChipRevBits */
#define       GFXB_BIG_BLITS  0
#define GFXB_HR_AGNUS   0
#define GFXB_HR_DENISE        1

#define GFXF_BIG_BLITS        1
#define GFXF_HR_AGNUS   1
#define GFXF_HR_DENISE        2

#define GRAPHICSNAME    "graphics.library"

#endif  /* GRAPHICS_GFXBASE_H */