1 #ifndef GRAPHICS_GFXMACROS_H 2 #define GRAPHICS_GFXMACROS_H 3 4 /* 5 graphics macro 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_RASTPORT_H 15 # include <graphics/rastport.h> 16 #endif 17 18 #ifndef GRAPHICS_GFXBASE_H 19 # include <graphics/gfxbase.h> 20 #endif 21 22 #ifndef HARDWARE_CUSTOM_H 23 # include <hardware/custom.h> 24 #endif 25 26 #ifndef HARDWARE_DMABITS_H 27 # include <hardware/dmabits.h> 28 #endif 29 30 31 #ifdef OLD_GRAPHICS_GFXMACROS_H 32 33 #define ON_DISPLAY custom.dmacon = BITSET | DMAF_RASTER; 34 #define OFF_DISPLAY custom.dmacon = BITCLR | DMAF_RASTER; 35 #define ON_SPRITE custom.dmacon = BITSET | DMAF_SPRITE; 36 #define OFF_SPRITE custom.dmacon = BITCLR | DMAF_SPRITE; 37 38 #define ON_VBLANK custom.intena = BITSET | INTF_VERTB; 39 #define OFF_VBLANK custom.intena = BITCLR | INTF_VERTB; 40 41 #define SetDrPt(w,p) { (w)->LinePtrn = p; (w)->Flags |= FRST_DOT; (w)->linpatcnt = 15; } 42 #define SetAfPt(w,p,n) { (w)->AreaPtrn = p; (w)->AreaPtSz = n; } 43 44 #define SetOPen(w,c) { (w)->AOlPen = c; (w)->Flags |= AREAOUTLINE; } 45 #define SetWrMsk(w,m) { (w)->Mask = m; } 46 47 #define SafeSetOutlinePen(w,c) { if (GfxBase->LibNode.lib_Version<39) { (w)->AOlPen = c; (w)->Flags |= AREAOUTLINE; } else SetOutlinePen(w,c); } 48 #define SafeSetWriteMask(w,m) { if (GfxBase->LibNode.lib_Version<39) { (w)->Mask = (m); } else SetWriteMask(w,m); } 49 50 #define GetOPen(rp) GetOutlinePen(rp) 51 52 #define BNDRYOFF(w) { (w)->Flags &= ~AREAOUTLINE; } 53 54 #define CINIT(c,n) UCopperListInit(c,n); 55 #define CMOVE(c,a,b) { CMove(c,&a,b); CBump(c); } 56 #define CWAIT(c,a,b) { CWait(c,a,b); CBump(c); } 57 #define CEND(c) { CWAIT(c,10000,255); } 58 59 #define DrawCircle(rp,cx,cy,r) DrawEllipse(rp,cx,cy,r,r); 60 #define AreaCircle(rp,cx,cy,r) AreaEllipse(rp,cx,cy,r,r); 61 62 #else /* OLD_GRAPHICS_GFXMACROS_H */ 63 64 #define ON_DISPLAY custom.dmacon = BITSET | DMAF_RASTER 65 #define OFF_DISPLAY custom.dmacon = BITCLR | DMAF_RASTER 66 #define ON_SPRITE custom.dmacon = BITSET | DMAF_SPRITE 67 #define OFF_SPRITE custom.dmacon = BITCLR | DMAF_SPRITE 68 69 #define ON_VBLANK custom.intena = BITSET | INTF_VERTB 70 #define OFF_VBLANK custom.intena = BITCLR | INTF_VERTB 71 72 73 #define SetDrPt(w,p) do { (w)->LinePtrn = (p); (w)->Flags |= FRST_DOT; (w)->linpatcnt = 15; } while (0) 74 #define SetAfPt(w,p,n) do { (w)->AreaPtrn = p; (w)->AreaPtSz = n; } while (0) 75 76 #define SetOPen(w,c) do { (w)->AOlPen = c; (w)->Flags |= AREAOUTLINE; } while (0) 77 #define SetWrMsk(w,m) do { (w)->Mask = m; } while (0) 78 79 #define SafeSetOutlinePen(w,c) do { if (GfxBase->LibNode.lib_Version < 39) SetOPen(w,c); else SetOutlinePen(w,c); } while (0) 80 #define SafeSetWriteMask(w,m) do { if (GfxBase->LibNode.lib_Version < 39) SetWrMsk(w,m); else SetWriteMask(w,m); } while (0) 81 82 #define GetOPen(rp) GetOutlinePen(rp) 83 84 #define BNDRYOFF(w) do { (w)->Flags &= ~AREAOUTLINE; } while (0) 85 86 #define CINIT(c,n) UCopperListInit(c,n) 87 #define CMOVE(c,a,b) do { CMove(c,&a,b); CBump(c); } while (0) 88 #define CWAIT(c,a,b) do { CWait(c,a,b); CBump(c); } while (0) 89 #define CEND(c) do { CWAIT(c,10000,255); } while (0) 90 91 #define DrawCircle(rp,cx,cy,r) DrawEllipse(rp,cx,cy,r,r) 92 #define AreaCircle(rp,cx,cy,r) AreaEllipse(rp,cx,cy,r,r) 93 94 #endif /* OLD_GRAPHICS_GFXMACROS_H */ 95 96 97 #endif /* GRAPHICS_GFXMACROS_H */