#ifndef GRAPHICS_CLIP_H #define GRAPHICS_CLIP_H /* ** $Filename: graphics/clip.h $ ** $Release: 2.04 Includes, V37.4 $ ** $Revision: 37.2 $ ** $Date: 91/10/24 $ ** ** ** ** (C) Copyright 1985-1999 Amiga, Inc. ** All Rights Reserved */ #ifndef EXEC_TYPES_H #include <exec/types.h> #endif #ifndef GRAPHICS_GFX_H #include <graphics/gfx.h> #endif #ifndef EXEC_SEMAPHORES_H #include <exec/semaphores.h> #endif #ifndef UTILITY_HOOKS_H #include <utility/hooks.h> #endif /* structures used by and constructed by windowlib.a */ /* understood by rom software */ #define NEWLOCKS struct Layer { struct Layer *front,*back; struct ClipRect *ClipRect; /* read by roms to find first cliprect */ struct RastPort *rp; struct Rectangle bounds; UBYTE reserved[4]; UWORD priority; /* system use only */ UWORD Flags; /* obscured ?, Virtual BitMap? */ struct BitMap *SuperBitMap; struct ClipRect *SuperClipRect; /* super bitmap cliprects if VBitMap != 0*/ /* else damage cliprect list for refresh */ APTR Window; /* reserved for user interface use */ WORD Scroll_X,Scroll_Y; struct ClipRect *cr,*cr2,*crnew; /* used by dedice */ struct ClipRect *SuperSaveClipRects; /* preallocated cr's */ struct ClipRect *_cliprects; /* system use during refresh */ struct Layer_Info *LayerInfo; /* points to head of the list */ struct SignalSemaphore Lock; struct Hook *BackFill; ULONG reserved1; struct Region *ClipRegion; struct Region *saveClipRects; /* used to back out when in trouble*/ WORD Width,Height; /* system use */ UBYTE reserved2[18]; /* this must stay here */ struct Region *DamageList; /* list of rectangles to refresh through */ }; struct ClipRect { struct ClipRect *Next; /* roms used to find next ClipRect */ struct ClipRect *prev; /* Temp use in layers (private) */ struct Layer *lobs; /* Private use for layers */ struct BitMap *BitMap; /* Bitmap for layers private use */ struct Rectangle bounds; /* bounds of cliprect */ void *_p1; /* Layers private use!!! */ void *_p2; /* Layers private use!!! */ LONG reserved; /* system use (Layers private) */ #ifdef NEWCLIPRECTS_1_1 LONG Flags; /* Layers private field for cliprects */ /* that layers allocates... */ #endif /* MUST be multiple of 8 bytes to buffer */ }; /* internal cliprect flags */ #define CR_NEEDS_NO_CONCEALED_RASTERS 1 #define CR_NEEDS_NO_LAYERBLIT_DAMAGE 2 /* defines for code values for getcode */ #define ISLESSX 1 #define ISLESSY 2 #define ISGRTRX 4 #define ISGRTRY 8 #endif /* GRAPHICS_CLIP_H */