home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / cbm / os-include.lha / os-include / graphics / clip.h next >
C/C++ Source or Header  |  1993-10-15  |  3KB  |  84 lines

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