1 #ifndef GRAPHICS_CLIP_H
    2 #define GRAPHICS_CLIP_H
    3 
    4 /*
    5 	graphics clip definitions
    6 
    7 	Copyright © 2002 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #ifndef EXEC_TYPES_H
   11 # include <exec/types.h>
   12 #endif
   13 
   14 #ifndef GRAPHICS_GFX_H
   15 # include <graphics/gfx.h>
   16 #endif
   17 
   18 #ifndef EXEC_SEMAPHORES_H
   19 # include <exec/semaphores.h>
   20 #endif
   21 
   22 #ifndef UTILITY_HOOKS_H
   23 # include <utility/hooks.h>
   24 #endif
   25 
   26 #pragma pack(2)
   27 
   28 
   29 #define NEWLOCKS
   30 
   31 struct Layer
   32 {
   33 	struct Layer           *front, *back;
   34 	struct ClipRect        *ClipRect;
   35 	struct RastPort        *rp;
   36 	struct Rectangle        bounds;
   37 	UBYTE                   reserved[4];
   38 	UWORD                   priority;
   39 	UWORD                   Flags;
   40 	struct BitMap          *SuperBitMap;
   41 	struct ClipRect        *SuperClipRect;
   42 	APTR                    Window;
   43 	WORD                    Scroll_X, Scroll_Y;
   44 	struct ClipRect        *cr, *cr2, *crnew;
   45 	struct ClipRect        *SuperSaveClipRects;
   46 	struct ClipRect        *_cliprects;
   47 	struct Layer_Info      *LayerInfo;
   48 	struct SignalSemaphore  Lock;
   49 	struct Hook            *BackFill;
   50 	ULONG                   reserved1;
   51 	struct Region          *ClipRegion;
   52 	struct Region          *saveClipRects;
   53 	WORD                    Width,Height;
   54 	UBYTE                   reserved2[18];
   55 	struct Region          *DamageList;
   56 };
   57 
   58 struct ClipRect
   59 {
   60 	struct ClipRect  *Next;
   61 	struct ClipRect  *prev;
   62 	struct Layer     *lobs;
   63 	struct BitMap    *BitMap;
   64 	struct Rectangle  bounds;
   65 	APTR              _p1;
   66 	APTR              _p2;
   67 	LONG              reserved;
   68 
   69 #ifdef NEWCLIPRECTS_1_1
   70 	LONG              Flags;
   71 #endif
   72 };
   73 
   74 
   75 #define CR_NEEDS_NO_CONCEALED_RASTERS  1
   76 #define CR_NEEDS_NO_LAYERBLIT_DAMAGE   2
   77 
   78 
   79 #define ISLESSX  1
   80 #define ISLESSY  2
   81 #define ISGRTRX  4
   82 #define ISGRTRY  8
   83 
   84 
   85 #pragma pack()
   86 
   87 #endif /* GRAPHICS_CLIP_H */