#ifndef GRAPHICS_VIEW_H #define GRAPHICS_VIEW_H /* ** $Filename: graphics/view.h $ ** $Release: 2.04 Includes, V37.4 $ ** $Revision: 37.0 $ ** $Date: 91/01/07 $ ** ** graphics view/viewport definintions ** ** (C) Copyright 1985-1999 Amiga, Inc. ** All Rights Reserved */ #define ECS_SPECIFIC #ifndef EXEC_TYPES_H #include <exec/types.h> #endif #ifndef GRAPHICS_GFX_H #include <graphics/gfx.h> #endif #ifndef GRAPHICS_COPPER_H #include <graphics/copper.h> #endif #ifndef GRAPHICS_GFXNODES_H #include <graphics/gfxnodes.h> #endif #ifndef GRAPHICS_MONITOR_H #include <graphics/monitor.h> #endif #ifndef HARDWARE_CUSTOM_H #include <hardware/custom.h> #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; /* user by MakeView() */ 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; /* used by makevp */ 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 */ }; /* this structure is obtained via GfxNew */ /* and disposed by GfxFree */ struct ViewPortExtra { struct ExtendedNode n; struct ViewPort *ViewPort; /* backwards link */ struct Rectangle DisplayClip; /* makevp display clipping information */ }; #define EXTEND_VSTRUCT 0x1000 /* unused bit in Modes field of View */ /* defines used for Modes in IVPargs */ #define GENLOCK_VIDEO 0x0002 #define LACE 0x0004 #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 #define VPF_A2024 0x40 #define VPF_AGNUS 0x20 #define VPF_TENHZ 0x20 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; UWORD *TransparencyBits; UBYTE TransparencyPlane; UBYTE reserved1; UWORD reserved2; struct ViewPort *cm_vp; APTR NormalDisplayInfo; APTR CoerceDisplayInfo; struct TagItem *cm_batch_items; ULONG VPModeID; }; /* if Type == 0 then ColorMap is V1.2/V1.3 compatible */ /* if Type != 0 then ColorMap is V36 compatible */ #define COLORMAP_TYPE_V1_2 0x00 #define COLORMAP_TYPE_V1_4 0x01 #define COLORMAP_TYPE_V36 COLORMAP_TYPE_V1_4 /* use this definition */ /* 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 #endif /* GRAPHICS_VIEW_H */