home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / TRSICAT.LZX / CATS_CD2_TRSI / Inc&AD2.1 / includes / graphics / clip.h next >
Encoding:
C/C++ Source or Header  |  1992-09-11  |  2.6 KB  |  89 lines

  1. #ifndef    GRAPHICS_CLIP_H
  2. #define    GRAPHICS_CLIP_H
  3. /*
  4. **    $VER: clip.h 37.2 (24.10.91)
  5. **    Includes Release 38.56
  6. **
  7. **
  8. **
  9. **    (C) Copyright 1985-1992 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. */
  12.  
  13. #ifndef EXEC_TYPES_H
  14. #include <exec/types.h>
  15. #endif
  16.  
  17. #ifndef GRAPHICS_GFX_H
  18. #include <graphics/gfx.h>
  19. #endif
  20. #ifndef EXEC_SEMAPHORES_H
  21. #include <exec/semaphores.h>
  22. #endif
  23. #ifndef UTILITY_HOOKS_H
  24. #include <utility/hooks.h>
  25. #endif
  26.  
  27. /* structures used by and constructed by windowlib.a */
  28. /* understood by rom software */
  29.  
  30. #define NEWLOCKS
  31.  
  32. struct Layer
  33. {
  34.     struct  Layer *front,*back;
  35.     struct  ClipRect    *ClipRect;  /* read by roms to find first cliprect */
  36.     struct  RastPort    *rp;
  37.     struct  Rectangle    bounds;
  38.     UBYTE   reserved[4];
  39.     UWORD   priority;            /* system use only */
  40.     UWORD   Flags;            /* obscured ?, Virtual BitMap? */
  41.     struct  BitMap *SuperBitMap;
  42.     struct  ClipRect *SuperClipRect; /* super bitmap cliprects if VBitMap != 0*/
  43.                   /* else damage cliprect list for refresh */
  44.     APTR    Window;          /* reserved for user interface use */
  45.     WORD   Scroll_X,Scroll_Y;
  46.     struct  ClipRect *cr,*cr2,*crnew;    /* used by dedice */
  47.     struct  ClipRect *SuperSaveClipRects; /* preallocated cr's */
  48.     struct  ClipRect *_cliprects;    /* system use during refresh */
  49.     struct  Layer_Info    *LayerInfo;    /* points to head of the list */
  50.     struct  SignalSemaphore Lock;
  51.     struct  Hook *BackFill;
  52.     ULONG   reserved1;
  53.     struct  Region *ClipRegion;
  54.     struct  Region *saveClipRects;    /* used to back out when in trouble*/
  55.     WORD    Width,Height;        /* system use */
  56.     UBYTE   reserved2[18];
  57.     /* this must stay here */
  58.     struct  Region  *DamageList;    /* list of rectangles to refresh
  59.                        through */
  60. };
  61.  
  62. struct ClipRect
  63. {
  64.     struct  ClipRect *Next;        /* roms used to find next ClipRect */
  65.     struct  ClipRect *prev;        /* Temp use in layers (private) */
  66.     struct  Layer   *lobs;        /* Private use for layers */
  67.     struct  BitMap  *BitMap;        /* Bitmap for layers private use */
  68.     struct  Rectangle    bounds;     /* bounds of cliprect */
  69.     void    *_p1;            /* Layers private use!!! */
  70.     void    *_p2;            /* Layers private use!!! */
  71.     LONG    reserved;            /* system use (Layers private) */
  72. #ifdef NEWCLIPRECTS_1_1
  73.     LONG    Flags;            /* Layers private field for cliprects */
  74.                     /* that layers allocates... */
  75. #endif                    /* MUST be multiple of 8 bytes to buffer */
  76. };
  77.  
  78. /* internal cliprect flags */
  79. #define CR_NEEDS_NO_CONCEALED_RASTERS  1
  80. #define CR_NEEDS_NO_LAYERBLIT_DAMAGE   2
  81.  
  82. /* defines for code values for getcode */
  83. #define ISLESSX 1
  84. #define ISLESSY 2
  85. #define ISGRTRX 4
  86. #define ISGRTRY 8
  87.  
  88. #endif    /* GRAPHICS_CLIP_H */
  89.