#ifndef GRAPHICS_VIEW_H #define GRAPHICS_VIEW_H /* ** $VER: view.h 39.34 (31.5.93) ** Includes Release 40.15 ** ** graphics view/viewport definintions ** ** (C) Copyright 1985-1993 Commodore-Amiga, Inc. ** All Rights Reserved */ #define ECS_SPECIFIC #ifndef EXEC_TYPES_H #include #endif #ifndef EXEC_SEMAPHORES_H #include #endif #ifndef GRAPHICS_GFX_H #include #endif #ifndef GRAPHICS_COPPER_H #include #endif #ifndef GRAPHICS_GFXNODES_H #include #endif #ifndef GRAPHICS_MONITOR_H #include #endif #ifndef GRAPHICS_DISPLAYINFO_H #include #endif #ifndef HARDWARE_CUSTOM_H #include #endif struct ViewPort { struct ViewPort *Next; struct ColorMap *ColorMap; /* table of colors for this viewport */ /* if this is nil, MakeVPort assumes default values */ struct CopList *DspIns; /* used by MakeVPort() */ struct CopList *SprIns; /* used by sprite stuff */ struct CopList *ClrIns; /* used by sprite stuff */ struct UCopList *UCopIns; /* User copper list */ WORD DWidth,DHeight; WORD DxOffset,DyOffset; UWORD Modes; UBYTE SpritePriorities; UBYTE ExtendedModes; struct RasInfo *RasInfo; }; struct View { struct ViewPort *ViewPort; struct cprlist *LOFCprList; /* used for interlaced and noninterlaced */ struct cprlist *SHFCprList; /* only used during interlace */ WORD DyOffset,DxOffset; /* for complete View positioning */ /* offsets are +- adjustments to standard #s */ UWORD Modes; /* such as INTERLACE, GENLOC */ }; /* these structures are obtained via GfxNew */ /* and disposed by GfxFree */ struct ViewExtra { struct ExtendedNode n; struct View *View; /* backwards link */ struct MonitorSpec *Monitor; /* monitors for this view */ UWORD TopLine; }; /* this structure is obtained via GfxNew */ /* and disposed by GfxFree */ struct ViewPortExtra { struct ExtendedNode n; struct ViewPort *ViewPort; /* backwards link */ struct Rectangle DisplayClip; /* MakeVPort display clipping information */ /* These are added for V39 */ APTR VecTable; /* Private */ APTR DriverData[2]; UWORD Flags; Point Origin[2]; /* First visible point relative to the DClip. * One for each possible playfield. */ ULONG cop1ptr; /* private */ ULONG cop2ptr; /* private */ }; /* All these VPXF_ flags are private */ #define VPXB_FREE_ME 0 #define VPXF_FREE_ME (1 << VPXB_FREE_ME) #define VPXB_LAST 1 #define VPXF_LAST (1 << VPXB_LAST) #define VPXB_STRADDLES_256 4 #define VPXF_STRADDLES_256 (1 << VPXB_STRADDLES_256) #define VPXB_STRADDLES_512 5 #define VPXF_STRADDLES_512 (1 << VPXB_STRADDLES_512) #define EXTEND_VSTRUCT 0x1000 /* unused bit in Modes field of View */ #define VPF_A2024 0x40 /* VP?_ fields internal only */ #define VPF_TENHZ 0x20 #define VPB_A2024 6 #define VPB_TENHZ 4 /* defines used for Modes in IVPargs */ #define GENLOCK_VIDEO 0x0002 #define LACE 0x0004 #define DOUBLESCAN 0x0008 #define SUPERHIRES 0x0020 #define PFBA 0x0040 #define EXTRA_HALFBRITE 0x0080 #define GENLOCK_AUDIO 0x0100 #define DUALPF 0x0400 #define HAM 0x0800 #define EXTENDED_MODE 0x1000 #define VP_HIDE 0x2000 #define SPRITES 0x4000 #define HIRES 0x8000 struct RasInfo /* used by callers to and InitDspC() */ { struct RasInfo *Next; /* used for dualpf */ struct BitMap *BitMap; WORD RxOffset,RyOffset; /* scroll offsets in this BitMap */ }; struct ColorMap { UBYTE Flags; UBYTE Type; UWORD Count; APTR ColorTable; struct ViewPortExtra *cm_vpe; APTR LowColorBits; UBYTE TransparencyPlane; UBYTE SpriteResolution; UBYTE SpriteResDefault; /* what resolution you get when you have set SPRITERESN_DEFAULT */ UBYTE AuxFlags; struct ViewPort *cm_vp; APTR NormalDisplayInfo; APTR CoerceDisplayInfo; struct TagItem *cm_batch_items; ULONG VPModeID; struct PaletteExtra *PalExtra; UWORD SpriteBase_Even; UWORD SpriteBase_Odd; UWORD Bp_0_base; UWORD Bp_1_base; }; /* if Type == 0 then ColorMap is V1.2/V1.3 compatible */ /* if Type != 0 then ColorMap is V38 compatible */ /* the system will never create other than V39 type colormaps when running V39 */ #define COLORMAP_TYPE_V1_2 0x00 #define COLORMAP_TYPE_V1_4 0x01 #define COLORMAP_TYPE_V36 COLORMAP_TYPE_V1_4 /* use this definition */ #define COLORMAP_TYPE_V39 0x02 /* Flags variable */ #define COLORMAP_TRANSPARENCY 0x01 #define COLORPLANE_TRANSPARENCY 0x02 #define BORDER_BLANKING 0x04 #define BORDER_NOTRANSPARENCY 0x08 #define VIDEOCONTROL_BATCH 0x10 #define USER_COPPER_CLIP 0x20 #define BORDERSPRITES 0x40 #define CMF_CMTRANS 0 #define CMF_CPTRANS 1 #define CMF_BRDRBLNK 2 #define CMF_BRDNTRAN 3 #define CMF_BRDRSPRT 6 #define SPRITERESN_ECS 0 /* ^140ns, except in 35ns viewport, where it is 70ns. */ #define SPRITERESN_140NS 1 #define SPRITERESN_70NS 2 #define SPRITERESN_35NS 3 #define SPRITERESN_DEFAULT -1 /* AuxFlags : */ #define CMAB_FULLPALETTE 0 #define CMAF_FULLPALETTE (1<