GRAPHICS Types Reference¶
Per-function autodoc pages link to these types via the type name (e.g., [List](types-graphics.md#list)).
Clickable inner types: inside each struct definition, field types that are themselves structs/unions/enums are clickable hyperlinks to their own definitions.
Contents¶
clip.h¶
struct ClipRect¶
Source: graphics/clip.h
struct ClipRect
{
struct ClipRect *Next; /* roms used to find next ClipRect */
struct ClipRect *reservedlink; /* Currently unused */
LONG obscured; /* If non-zero, this is a backing store
* cliprect that is currently obscured.
* NEW: In V45, this is no longer a
* valid pointer since a cliprect
* can be obscured by more than one
* layer. Just test for zero or non-
* zero, do *NOT* dereference.
*/
struct BitMap *BitMap; /* backing store bitmap if obscured != NULL */
struct Rectangle bounds; /* bounds of this cliprect */
struct ClipRect *vlink; /* Layers private use!!! */
struct Layer_Info *home; /* where this cliprect belongs to.
* If you *MUST* hack in your private
* cliprects, ensure that you set this
* field to NULL. If you don't, layers
* will pool your cliprect and will
* release it when it "feels like".
* For NULL, V40 behaivour is
* re-established.
*/
APTR reserved;
#ifdef NEWCLIPRECTS_1_1
LONG Flags; /* Layers private field for cliprects */
#endif /* MUST be multiple of 8 bytes to buffer */
};
struct Layer¶
Source: graphics/clip.h
struct Layer
{
struct Layer *front,*back;
struct ClipRect *ClipRect; /* singly linked list of active cliprects */
struct RastPort *rp; /* rastport to draw into. Its layer is me */
struct Rectangle bounds; /* screen bounds of this layer */
struct Layer *nlink; /* new in V45:
* next back layer for display
* reorganization
*/
UWORD priority; /* internal use: on layer front/back move,
* relative priority of the layers.
* Topmost layer has lowest priority.
*/
UWORD Flags; /* see */
struct BitMap *SuperBitMap; /* if non-NULL, superbitmap layer */
struct ClipRect *SuperClipRect; /* super bitmap cliprects if VBitMap != 0*/
/* else damage cliprect list for refresh */
APTR Window; /* Intuition keeps its window here */
WORD Scroll_X,Scroll_Y; /* layer displacement */
struct ClipRect *OnScreen; /* temporary list of on-screen cliprects */
struct ClipRect *OffScreen; /* temporary list of off-screen cliprects */
struct ClipRect *Backup; /* temporary copy of un-damaged clips */
struct ClipRect *SuperSaveClipRects; /* five preallocated super cr's */
struct ClipRect *Undamaged; /* undamaged, un-user clipped version
* of the cliprect, restored on EndUpdate()
*/
struct Layer_Info *LayerInfo; /* points to head of the list */
struct SignalSemaphore Lock; /* access to this layer */
struct Hook *BackFill; /* backfill hook */
ULONG reserved1;
struct Region *ClipRegion; /* user InstallClipRegion()'d region */
struct ClipRect *clipped; /* clipped away by damage list or
* user clip rect
*/
WORD Width,Height; /* system use */
UBYTE reserved2[18]; /* more reserved fields */
struct Region *DamageList; /* list of rectangles to refresh */
};
displayinfo.h¶
struct DimensionInfostruct DisplayInfostruct MonitorInfostruct NameInfostruct QueryHeaderstruct VecInfo
struct DimensionInfo¶
Source: graphics/displayinfo.h
struct DimensionInfo
{
struct QueryHeader Header;
UWORD MaxDepth; /* log2( max number of colors ) */
UWORD MinRasterWidth; /* minimum width in pixels */
UWORD MinRasterHeight; /* minimum height in pixels */
UWORD MaxRasterWidth; /* maximum width in pixels */
UWORD MaxRasterHeight; /* maximum height in pixels */
struct Rectangle Nominal; /* "standard" dimensions */
struct Rectangle MaxOScan; /* fixed, hardware dependent */
struct Rectangle VideoOScan; /* fixed, hardware dependent */
struct Rectangle TxtOScan; /* editable via preferences */
struct Rectangle StdOScan; /* editable via preferences */
UBYTE pad[14];
ULONG reserved[2]; /* terminator */
};
struct DisplayInfo¶
Source: graphics/displayinfo.h
struct DisplayInfo
{
struct QueryHeader Header;
UWORD NotAvailable; /* if NULL available, else see defines */
ULONG PropertyFlags; /* Properties of this mode see defines */
Point Resolution; /* ticks-per-pixel X/Y */
UWORD PixelSpeed; /* aproximation in nanoseconds */
UWORD NumStdSprites; /* number of standard amiga sprites */
UWORD PaletteRange; /* OBSOLETE - use Red/Green/Blue bits instead */
Point SpriteResolution; /* std sprite ticks-per-pixel X/Y */
UBYTE pad[4]; /* used internally */
UBYTE RedBits; /* number of Red bits this display supports (V39) */
UBYTE GreenBits; /* number of Green bits this display supports (V39) */
UBYTE BlueBits; /* number of Blue bits this display supports (V39) */
UBYTE pad2[5]; /* find some use for this. */
ULONG reserved[2]; /* terminator */
};
struct MonitorInfo¶
Source: graphics/displayinfo.h
struct MonitorInfo
{
struct QueryHeader Header;
struct MonitorSpec *Mspc; /* pointer to monitor specification */
Point ViewPosition; /* editable via preferences */
Point ViewResolution; /* standard monitor ticks-per-pixel */
struct Rectangle ViewPositionRange; /* fixed, hardware dependent */
UWORD TotalRows; /* display height in scanlines */
UWORD TotalColorClocks; /* scanline width in 280 ns units */
UWORD MinRow; /* absolute minimum active scanline */
WORD Compatibility; /* how this coexists with others */
UBYTE pad[32];
Point MouseTicks;
Point DefaultViewPosition; /* original, never changes */
ULONG PreferredModeID; /* for Preferences */
ULONG reserved[2]; /* terminator */
};
struct NameInfo¶
Source: graphics/displayinfo.h
struct NameInfo
{
struct QueryHeader Header;
UBYTE Name[DISPLAYNAMELEN];
ULONG reserved[2]; /* terminator */
};
struct QueryHeader¶
Source: graphics/displayinfo.h
struct QueryHeader
{
ULONG StructID; /* datachunk type identifier */
ULONG DisplayID; /* copy of display record key */
ULONG SkipID; /* TAG_SKIP -- see tagitems.h */
ULONG Length; /* length of local data in double-longwords */
};
struct VecInfo¶
Source: graphics/displayinfo.h
struct VecInfo
{
struct QueryHeader Header;
APTR Vec;
APTR Data;
UWORD Type;
UWORD pad[3];
ULONG reserved[2];
};
gels.h¶
struct AnimComp¶
Source: graphics/gels.h
struct AnimComp
{
/* --------------------- SYSTEM VARIABLES --------------------------------- */
/* --------------------- COMMON VARIABLES --------------------------------- */
WORD Flags; /* AnimComp flags for system & user */
/* timer defines how long to keep this component active:
* if set non-zero, timer decrements to zero then switches to nextSeq
* if set to zero, AnimComp never switches
*/
WORD Timer;
/* --------------------- USER VARIABLES ----------------------------------- */
/* initial value for timer when the AnimComp is activated by the system */
WORD TimeSet;
/* pointer to next and previous components of animation object */
struct AnimComp *NextComp;
struct AnimComp *PrevComp;
/* pointer to component component definition of next image in sequence */
struct AnimComp *NextSeq;
struct AnimComp *PrevSeq;
/* address of special animation procedure */
WORD (* __STDARGS__ AnimCRoutine) __CLIB_PROTOTYPE((struct AnimComp *));
WORD YTrans; /* initial y translation (if this is a component) */
WORD XTrans; /* initial x translation (if this is a component) */
struct AnimOb *HeadOb;
struct Bob *AnimBob;
};
struct AnimOb¶
Source: graphics/gels.h
struct AnimOb
{
/* --------------------- SYSTEM VARIABLES --------------------------------- */
struct AnimOb *NextOb, *PrevOb;
/* number of calls to Animate this AnimOb has endured */
LONG Clock;
WORD AnOldY, AnOldX; /* old y,x coordinates */
/* --------------------- COMMON VARIABLES --------------------------------- */
WORD AnY, AnX; /* y,x coordinates of the AnimOb */
/* --------------------- USER VARIABLES ----------------------------------- */
WORD YVel, XVel; /* velocities of this object */
WORD YAccel, XAccel; /* accelerations of this object */
WORD RingYTrans, RingXTrans; /* ring translation values */
/* address of special animation
procedure */
WORD (* __STDARGS__ AnimORoutine) __CLIB_PROTOTYPE((struct AnimOb *));
struct AnimComp *HeadComp; /* pointer to first component */
AUserStuff AUserExt; /* AnimOb user extension */
};
struct DBufPacket¶
Source: graphics/gels.h
struct DBufPacket
{
WORD BufY, BufX; /* save the other buffers screen coordinates */
struct VSprite *BufPath; /* carry the draw path over the gap */
/* these pointers must be filled in by the user */
/* pointer to other buffer's background save buffer */
WORD *BufBuffer;
};
struct VSprite¶
Source: graphics/gels.h
struct VSprite
{
/* --------------------- SYSTEM VARIABLES ------------------------------- */
/* GEL linked list forward/backward pointers sorted by y,x value */
struct VSprite *NextVSprite;
struct VSprite *PrevVSprite;
/* GEL draw list constructed in the order the Bobs are actually drawn, then
* list is copied to clear list
* must be here in VSprite for system boundary detection
*/
struct VSprite *DrawPath; /* pointer of overlay drawing */
struct VSprite *ClearPath; /* pointer for overlay clearing */
/* the VSprite positions are defined in (y,x) order to make sorting
* sorting easier, since (y,x) as a long integer
*/
WORD OldY, OldX; /* previous position */
/* --------------------- COMMON VARIABLES --------------------------------- */
WORD Flags; /* VSprite flags */
/* --------------------- USER VARIABLES ----------------------------------- */
/* the VSprite positions are defined in (y,x) order to make sorting
* sorting easier, since (y,x) as a long integer
*/
WORD Y, X; /* screen position */
WORD Height;
WORD Width; /* number of words per row of image data */
WORD Depth; /* number of planes of data */
WORD MeMask; /* which types can collide with this VSprite*/
WORD HitMask; /* which types this VSprite can collide with*/
WORD *ImageData; /* pointer to VSprite image */
/* borderLine is the one-dimensional logical OR of all
* the VSprite bits, used for fast collision detection of edge
*/
WORD *BorderLine; /* logical OR of all VSprite bits */
WORD *CollMask; /* similar to above except this is a matrix */
/* pointer to this VSprite's color definitions (not used by Bobs) */
WORD *SprColors;
struct Bob *VSBob; /* points home if this VSprite is part of
a Bob */
/* planePick flag: set bit selects a plane from image, clear bit selects
* use of shadow mask for that plane
* OnOff flag: if using shadow mask to fill plane, this bit (corresponding
* to bit in planePick) describes whether to fill with 0's or 1's
* There are two uses for these flags:
* - if this is the VSprite of a Bob, these flags describe how the Bob
* is to be drawn into memory
* - if this is a simple VSprite and the user intends on setting the
* MUSTDRAW flag of the VSprite, these flags must be set too to describe
* which color registers the user wants for the image
*/
BYTE PlanePick;
BYTE PlaneOnOff;
VUserStuff VUserExt; /* user definable: see note above */
};
gfx.h¶
struct BitMap¶
Source: graphics/gfx.h
struct BitMap
{
UWORD BytesPerRow;
UWORD Rows;
UBYTE Flags;
UBYTE Depth;
UWORD pad;
PLANEPTR Planes[8];
};
struct Point¶
Source: graphics/gfx.h
typedef struct tPoint
{
WORD x,y;
} Point;
struct Rect32¶
Source: graphics/gfx.h
struct Rect32
{
LONG MinX,MinY;
LONG MaxX,MaxY;
};
struct Rectangle¶
Source: graphics/gfx.h
struct Rectangle
{
WORD MinX,MinY;
WORD MaxX,MaxY;
};
gfxnodes.h¶
struct ExtendedNode¶
Source: graphics/gfxnodes.h
struct ExtendedNode {
struct Node *xln_Succ;
struct Node *xln_Pred;
UBYTE xln_Type;
BYTE xln_Pri;
char *xln_Name;
UBYTE xln_Subsystem;
UBYTE xln_Subtype;
struct GfxBase *xln_Library;
/*
** The following function shall only be used internally, the
** calling convention is with registers populated below.
*/
LONG (* __ASM__ xln_Init) __CLIB_PROTOTYPE((__REG__(a0, struct ExtendedNode *),__REG__(d0, UWORD)));
};
layers.h¶
struct Layer_Info¶
Source: graphics/layers.h
struct Layer_Info
{
struct Layer *top_layer; /* Frontmost layer */
void *resPtr1; /* V45 spare */
void *resPtr2; /* Another V45 spare */
struct ClipRect *FreeClipRects; /* Implements a backing store
* of cliprects to avoid
* frequent re-allocation
* of cliprects. Private.
*/
struct Rectangle bounds; /* clipping bounds of
* this layer info. All layers
* are clipped against this
*/
struct SignalSemaphore Lock; /* Layer_Info lock */
struct MinList gs_Head; /* linked list of all semaphores of all
* layers within this layer info
*/
WORD PrivateReserve3; /* !! Private !! */
void *PrivateReserve4; /* !! Private !! */
UWORD Flags;
BYTE res_count; /* V45 spare, no longer used */
BYTE LockLayersCount; /* Counts # times LockLayers
* has been called
*/
BYTE PrivateReserve5; /* !! Private !! */
BYTE UserClipRectsCount; /* Also private */
struct Hook *BlankHook; /* LayerInfo backfill hook */
void *resPtr5; /* !! Private !! */
};
rastport.h¶
struct AreaInfo¶
Source: graphics/rastport.h
struct AreaInfo
{
WORD *VctrTbl; /* ptr to start of vector table */
WORD *VctrPtr; /* ptr to current vertex */
BYTE *FlagTbl; /* ptr to start of vector flag table */
BYTE *FlagPtr; /* ptrs to areafill flags */
WORD Count; /* number of vertices in list */
WORD MaxCount; /* AreaMove/Draw will not allow Count>MaxCount*/
WORD FirstX,FirstY; /* first point for this polygon */
};
struct GelsInfo¶
Source: graphics/rastport.h
struct GelsInfo
{
BYTE sprRsrvd; /* flag of which sprites to reserve from
vsprite system */
UBYTE Flags; /* system use */
struct VSprite *gelHead, *gelTail; /* dummy vSprites for list management*/
/* pointer to array of 8 WORDS for sprite available lines */
WORD *nextLine;
/* pointer to array of 8 pointers for color-last-assigned to vSprites */
WORD **lastColor;
struct collTable *collHandler; /* addresses of collision routines */
WORD leftmost, rightmost, topmost, bottommost;
APTR firstBlissObj,lastBlissObj; /* system use only */
};
struct RastPort¶
Source: graphics/rastport.h
struct RastPort
{
struct Layer *Layer;
struct BitMap *BitMap;
UWORD *AreaPtrn; /* ptr to areafill pattern */
struct TmpRas *TmpRas;
struct AreaInfo *AreaInfo;
struct GelsInfo *GelsInfo;
UBYTE Mask; /* write mask for this raster */
BYTE FgPen; /* foreground pen for this raster */
BYTE BgPen; /* background pen */
BYTE AOlPen; /* areafill outline pen */
BYTE DrawMode; /* drawing mode for fill, lines, and text */
BYTE AreaPtSz; /* 2^n words for areafill pattern */
BYTE linpatcnt; /* current line drawing pattern preshift */
BYTE dummy;
UWORD Flags; /* miscellaneous control bits */
UWORD LinePtrn; /* 16 bits for textured lines */
WORD cp_x, cp_y; /* current pen position */
UBYTE minterms[8];
WORD PenWidth;
WORD PenHeight;
struct TextFont *Font; /* current font address */
UBYTE AlgoStyle; /* the algorithmically generated style */
UBYTE TxFlags; /* text specific flags */
UWORD TxHeight; /* text height */
UWORD TxWidth; /* text nominal width */
UWORD TxBaseline; /* text baseline */
WORD TxSpacing; /* text spacing (per character) */
APTR *RP_User;
ULONG longreserved[2];
#ifndef GFX_RASTPORT_1_2
UWORD wordreserved[7]; /* used to be a node */
UBYTE reserved[8]; /* for future use */
#endif
};
struct TmpRas¶
Source: graphics/rastport.h
struct TmpRas
{
BYTE *RasPtr;
LONG Size;
};
regions.h¶
struct Region¶
Source: graphics/regions.h
struct Region
{
struct Rectangle bounds;
struct RegionRectangle *RegionRectangle;
};
struct RegionRectangle¶
Source: graphics/regions.h
struct RegionRectangle
{
struct RegionRectangle *Next,*Prev;
struct Rectangle bounds;
};
scale.h¶
struct BitScaleArgs¶
Source: graphics/scale.h
struct BitScaleArgs {
UWORD bsa_SrcX, bsa_SrcY; /* source origin */
UWORD bsa_SrcWidth, bsa_SrcHeight; /* source size */
UWORD bsa_XSrcFactor, bsa_YSrcFactor; /* scale factor denominators */
UWORD bsa_DestX, bsa_DestY; /* destination origin */
UWORD bsa_DestWidth, bsa_DestHeight; /* destination size result */
UWORD bsa_XDestFactor, bsa_YDestFactor; /* scale factor numerators */
struct BitMap *bsa_SrcBitMap; /* source BitMap */
struct BitMap *bsa_DestBitMap; /* destination BitMap */
ULONG bsa_Flags; /* reserved. Must be zero! */
UWORD bsa_XDDA, bsa_YDDA; /* reserved */
LONG bsa_Reserved1;
LONG bsa_Reserved2;
};
#endif /* GRAPHICS_SCALE_H */
text.h¶
struct ColorFontColorsstruct ColorTextFontstruct TTextAttrstruct TextAttrstruct TextExtentstruct TextFontstruct TextFontExtension
struct ColorFontColors¶
Source: graphics/text.h
struct ColorFontColors {
UWORD cfc_Reserved; /* *must* be zero */
UWORD cfc_Count; /* number of entries in cfc_ColorTable */
UWORD *cfc_ColorTable; /* 4 bit per component color map packed xRGB */
};
struct ColorTextFont¶
Source: graphics/text.h
struct ColorTextFont {
struct TextFont ctf_TF;
UWORD ctf_Flags; /* extended flags */
UBYTE ctf_Depth; /* number of bit planes */
UBYTE ctf_FgColor; /* color that is remapped to FgPen */
UBYTE ctf_Low; /* lowest color represented here */
UBYTE ctf_High; /* highest color represented here */
UBYTE ctf_PlanePick; /* PlanePick ala Images */
UBYTE ctf_PlaneOnOff; /* PlaneOnOff ala Images */
struct ColorFontColors *ctf_ColorFontColors; /* colors for font */
APTR ctf_CharData[8]; /*pointers to bit planes ala tf_CharData */
};
struct TTextAttr¶
Source: graphics/text.h
struct TTextAttr {
STRPTR tta_Name; /* name of the font */
UWORD tta_YSize; /* height of the font */
UBYTE tta_Style; /* intrinsic font style */
UBYTE tta_Flags; /* font preferences and flags */
struct TagItem *tta_Tags; /* extended attributes */
};
struct TextAttr¶
Source: graphics/text.h
struct TextAttr {
STRPTR ta_Name; /* name of the font */
UWORD ta_YSize; /* height of the font */
UBYTE ta_Style; /* intrinsic font style */
UBYTE ta_Flags; /* font preferences and flags */
};
struct TextExtent¶
Source: graphics/text.h
struct TextExtent {
UWORD te_Width; /* same as TextLength */
UWORD te_Height; /* same as tf_YSize */
struct Rectangle te_Extent; /* relative to CP */
};
struct TextFont¶
Source: graphics/text.h
struct TextFont {
struct Message tf_Message; /* reply message for font removal */
/* font name in LN \ used in this */
UWORD tf_YSize; /* font height | order to best */
UBYTE tf_Style; /* font style | match a font */
UBYTE tf_Flags; /* preferences and flags / request. */
UWORD tf_XSize; /* nominal font width */
UWORD tf_Baseline; /* distance from the top of char to baseline */
UWORD tf_BoldSmear; /* smear to affect a bold enhancement */
UWORD tf_Accessors; /* access count */
UBYTE tf_LoChar; /* the first character described here */
UBYTE tf_HiChar; /* the last character described here */
APTR tf_CharData; /* the bit character data */
UWORD tf_Modulo; /* the row modulo for the strike font data */
APTR tf_CharLoc; /* ptr to location data for the strike font */
/* 2 words: bit offset then size */
APTR tf_CharSpace; /* ptr to words of proportional spacing data */
APTR tf_CharKern; /* ptr to words of kerning data */
};
struct TextFontExtension¶
Source: graphics/text.h
struct TextFontExtension { /* this structure is read-only */
UWORD tfe_MatchWord; /* a magic cookie for the extension */
UBYTE tfe_Flags0; /* (system private flags) */
UBYTE tfe_Flags1; /* (system private flags) */
struct TextFont *tfe_BackPtr; /* validation of compilation */
struct MsgPort *tfe_OrigReplyPort; /* original value in tf_Extension */
struct TagItem *tfe_Tags; /* Text Tags for the font */
UWORD *tfe_OFontPatchS; /* (system private use) */
UWORD *tfe_OFontPatchK; /* (system private use) */
/* this space is reserved for future expansion */
};
view.h¶
struct ColorMap¶
Source: graphics/view.h
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;
};
struct DBufInfo¶
Source: graphics/view.h
struct DBufInfo {
APTR dbi_Link1;
ULONG dbi_Count1;
struct Message dbi_SafeMessage; /* replied to when safe to write to old bitmap */
APTR dbi_UserData1; /* first user data */
APTR dbi_Link2;
ULONG dbi_Count2;
struct Message dbi_DispMessage; /* replied to when new bitmap has been displayed at least
once */
APTR dbi_UserData2; /* second user data */
ULONG dbi_MatchLong;
APTR dbi_CopPtr1;
APTR dbi_CopPtr2;
APTR dbi_CopPtr3;
UWORD dbi_BeamPos1;
UWORD dbi_BeamPos2;
};
struct View¶
Source: graphics/view.h
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 */
};
struct ViewExtra¶
Source: graphics/view.h
struct ViewExtra
{
struct ExtendedNode n;
struct View *View; /* backwards link */
struct MonitorSpec *Monitor; /* monitors for this view */
UWORD TopLine;
};
struct ViewPort¶
Source: graphics/view.h
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 ViewPortExtra¶
Source: graphics/view.h
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 */
};