home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / fd2inline-1.0-bin.lha / include / inline / graphics.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-10-12  |  27.0 KB  |  715 lines

  1. #ifndef _INLINE_GRAPHICS_H
  2. #define _INLINE_GRAPHICS_H
  3.  
  4. #ifndef __INLINE_MACROS_H
  5. #include <inline/macros.h>
  6. #endif
  7.  
  8. #ifndef GRAPHICS_BASE_NAME
  9. #define GRAPHICS_BASE_NAME GfxBase
  10. #endif
  11.  
  12. #define AddAnimOb(anOb, anKey, rp) \
  13.     LP3NR(0x9c, AddAnimOb, struct AnimOb *, anOb, a0, struct AnimOb **, anKey, a1, struct RastPort *, rp, a2, \
  14.     , GRAPHICS_BASE_NAME)
  15.  
  16. #define AddBob(bob, rp) \
  17.     LP2NR(0x60, AddBob, struct Bob *, bob, a0, struct RastPort *, rp, a1, \
  18.     , GRAPHICS_BASE_NAME)
  19.  
  20. #define AddFont(textFont) \
  21.     LP1NR(0x1e0, AddFont, struct TextFont *, textFont, a1, \
  22.     , GRAPHICS_BASE_NAME)
  23.  
  24. #define AddVSprite(vSprite, rp) \
  25.     LP2NR(0x66, AddVSprite, struct VSprite *, vSprite, a0, struct RastPort *, rp, a1, \
  26.     , GRAPHICS_BASE_NAME)
  27.  
  28. #define AllocBitMap(sizex, sizey, depth, flags, friend_bitmap) \
  29.     LP5(0x396, struct BitMap *, AllocBitMap, unsigned long, sizex, d0, unsigned long, sizey, d1, unsigned long, depth, d2, unsigned long, flags, d3, struct BitMap *, friend_bitmap, a0, \
  30.     , GRAPHICS_BASE_NAME)
  31.  
  32. #define AllocDBufInfo(vp) \
  33.     LP1(0x3c6, struct DBufInfo *, AllocDBufInfo, struct ViewPort *, vp, a0, \
  34.     , GRAPHICS_BASE_NAME)
  35.  
  36. #define AllocRaster(width, height) \
  37.     LP2(0x1ec, PLANEPTR, AllocRaster, unsigned long, width, d0, unsigned long, height, d1, \
  38.     , GRAPHICS_BASE_NAME)
  39.  
  40. #define AllocSpriteDataA(bm, tags) \
  41.     LP2(0x3fc, struct ExtSprite *, AllocSpriteDataA, struct BitMap *, bm, a2, struct TagItem *, tags, a1, \
  42.     , GRAPHICS_BASE_NAME)
  43.  
  44. #ifndef NO_INLINE_STDARG
  45. #define AllocSpriteData(a0, tags...) \
  46.     ({ULONG _tags[] = { tags }; AllocSpriteDataA((a0), (struct TagItem *)_tags);})
  47. #endif /* !NO_INLINE_STDARG */
  48.  
  49. #define AndRectRegion(region, rectangle) \
  50.     LP2NR(0x1f8, AndRectRegion, struct Region *, region, a0, struct Rectangle *, rectangle, a1, \
  51.     , GRAPHICS_BASE_NAME)
  52.  
  53. #define AndRegionRegion(srcRegion, destRegion) \
  54.     LP2(0x270, BOOL, AndRegionRegion, struct Region *, srcRegion, a0, struct Region *, destRegion, a1, \
  55.     , GRAPHICS_BASE_NAME)
  56.  
  57. #define Animate(anKey, rp) \
  58.     LP2NR(0xa2, Animate, struct AnimOb **, anKey, a0, struct RastPort *, rp, a1, \
  59.     , GRAPHICS_BASE_NAME)
  60.  
  61. #define AreaDraw(rp, x, y) \
  62.     LP3(0x102, LONG, AreaDraw, struct RastPort *, rp, a1, long, x, d0, long, y, d1, \
  63.     , GRAPHICS_BASE_NAME)
  64.  
  65. #define AreaEllipse(rp, xCenter, yCenter, a, b) \
  66.     LP5(0xba, LONG, AreaEllipse, struct RastPort *, rp, a1, long, xCenter, d0, long, yCenter, d1, long, a, d2, long, b, d3, \
  67.     , GRAPHICS_BASE_NAME)
  68.  
  69. #define AreaEnd(rp) \
  70.     LP1(0x108, LONG, AreaEnd, struct RastPort *, rp, a1, \
  71.     , GRAPHICS_BASE_NAME)
  72.  
  73. #define AreaMove(rp, x, y) \
  74.     LP3(0xfc, LONG, AreaMove, struct RastPort *, rp, a1, long, x, d0, long, y, d1, \
  75.     , GRAPHICS_BASE_NAME)
  76.  
  77. #define AskFont(rp, textAttr) \
  78.     LP2NR(0x1da, AskFont, struct RastPort *, rp, a1, struct TextAttr *, textAttr, a0, \
  79.     , GRAPHICS_BASE_NAME)
  80.  
  81. #define AskSoftStyle(rp) \
  82.     LP1(0x54, ULONG, AskSoftStyle, struct RastPort *, rp, a1, \
  83.     , GRAPHICS_BASE_NAME)
  84.  
  85. #define AttachPalExtra(cm, vp) \
  86.     LP2(0x342, LONG, AttachPalExtra, struct ColorMap *, cm, a0, struct ViewPort *, vp, a1, \
  87.     , GRAPHICS_BASE_NAME)
  88.  
  89. #define AttemptLockLayerRom(layer) \
  90.     LP1A5(0x28e, BOOL, AttemptLockLayerRom, struct Layer *, layer, d7, \
  91.     , GRAPHICS_BASE_NAME)
  92.  
  93. #define BestModeIDA(tags) \
  94.     LP1(0x41a, ULONG, BestModeIDA, struct TagItem *, tags, a0, \
  95.     , GRAPHICS_BASE_NAME)
  96.  
  97. #ifndef NO_INLINE_STDARG
  98. #define BestModeID(tags...) \
  99.     ({ULONG _tags[] = { tags }; BestModeIDA((struct TagItem *)_tags);})
  100. #endif /* !NO_INLINE_STDARG */
  101.  
  102. #define BitMapScale(bitScaleArgs) \
  103.     LP1NR(0x2a6, BitMapScale, struct BitScaleArgs *, bitScaleArgs, a0, \
  104.     , GRAPHICS_BASE_NAME)
  105.  
  106. #define BltBitMap(srcBitMap, xSrc, ySrc, destBitMap, xDest, yDest, xSize, ySize, minterm, mask, tempA) \
  107.     LP11(0x1e, LONG, BltBitMap, struct BitMap *, srcBitMap, a0, long, xSrc, d0, long, ySrc, d1, struct BitMap *, destBitMap, a1, long, xDest, d2, long, yDest, d3, long, xSize, d4, long, ySize, d5, unsigned long, minterm, d6, unsigned long, mask, d7, PLANEPTR, tempA, a2, \
  108.     , GRAPHICS_BASE_NAME)
  109.  
  110. #define BltBitMapRastPort(srcBitMap, xSrc, ySrc, destRP, xDest, yDest, xSize, ySize, minterm) \
  111.     LP9NR(0x25e, BltBitMapRastPort, struct BitMap *, srcBitMap, a0, long, xSrc, d0, long, ySrc, d1, struct RastPort *, destRP, a1, long, xDest, d2, long, yDest, d3, long, xSize, d4, long, ySize, d5, unsigned long, minterm, d6, \
  112.     , GRAPHICS_BASE_NAME)
  113.  
  114. #define BltClear(memBlock, byteCount, flags) \
  115.     LP3NR(0x12c, BltClear, PLANEPTR, memBlock, a1, unsigned long, byteCount, d0, unsigned long, flags, d1, \
  116.     , GRAPHICS_BASE_NAME)
  117.  
  118. #define BltMaskBitMapRastPort(srcBitMap, xSrc, ySrc, destRP, xDest, yDest, xSize, ySize, minterm, bltMask) \
  119.     LP10NR(0x27c, BltMaskBitMapRastPort, struct BitMap *, srcBitMap, a0, long, xSrc, d0, long, ySrc, d1, struct RastPort *, destRP, a1, long, xDest, d2, long, yDest, d3, long, xSize, d4, long, ySize, d5, unsigned long, minterm, d6, PLANEPTR, bltMask, a2, \
  120.     , GRAPHICS_BASE_NAME)
  121.  
  122. #define BltPattern(rp, mask, xMin, yMin, xMax, yMax, maskBPR) \
  123.     LP7NR(0x138, BltPattern, struct RastPort *, rp, a1, PLANEPTR, mask, a0, long, xMin, d0, long, yMin, d1, long, xMax, d2, long, yMax, d3, unsigned long, maskBPR, d4, \
  124.     , GRAPHICS_BASE_NAME)
  125.  
  126. #define BltTemplate(source, xSrc, srcMod, destRP, xDest, yDest, xSize, ySize) \
  127.     LP8NR(0x24, BltTemplate, PLANEPTR, source, a0, long, xSrc, d0, long, srcMod, d1, struct RastPort *, destRP, a1, long, xDest, d2, long, yDest, d3, long, xSize, d4, long, ySize, d5, \
  128.     , GRAPHICS_BASE_NAME)
  129.  
  130. #define CBump(copList) \
  131.     LP1NR(0x16e, CBump, struct UCopList *, copList, a1, \
  132.     , GRAPHICS_BASE_NAME)
  133.  
  134. #define CMove(copList, destination, data) \
  135.     LP3NR(0x174, CMove, struct UCopList *, copList, a1, APTR, destination, d0, long, data, d1, \
  136.     , GRAPHICS_BASE_NAME)
  137.  
  138. #define CWait(copList, v, h) \
  139.     LP3NR(0x17a, CWait, struct UCopList *, copList, a1, long, v, d0, long, h, d1, \
  140.     , GRAPHICS_BASE_NAME)
  141.  
  142. #define CalcIVG(v, vp) \
  143.     LP2(0x33c, UWORD, CalcIVG, struct View *, v, a0, struct ViewPort *, vp, a1, \
  144.     , GRAPHICS_BASE_NAME)
  145.  
  146. #define ChangeExtSpriteA(vp, oldsprite, newsprite, tags) \
  147.     LP4(0x402, LONG, ChangeExtSpriteA, struct ViewPort *, vp, a0, struct ExtSprite *, oldsprite, a1, struct ExtSprite *, newsprite, a2, struct TagItem *, tags, a3, \
  148.     , GRAPHICS_BASE_NAME)
  149.  
  150. #ifndef NO_INLINE_STDARG
  151. #define ChangeExtSprite(a0, a1, a2, tags...) \
  152.     ({ULONG _tags[] = { tags }; ChangeExtSpriteA((a0), (a1), (a2), (struct TagItem *)_tags);})
  153. #endif /* !NO_INLINE_STDARG */
  154.  
  155. #define ChangeSprite(vp, sprite, newData) \
  156.     LP3NR(0x1a4, ChangeSprite, struct ViewPort *, vp, a0, struct SimpleSprite *, sprite, a1, PLANEPTR, newData, a2, \
  157.     , GRAPHICS_BASE_NAME)
  158.  
  159. #define ChangeVPBitMap(vp, bm, db) \
  160.     LP3NR(0x3ae, ChangeVPBitMap, struct ViewPort *, vp, a0, struct BitMap *, bm, a1, struct DBufInfo *, db, a2, \
  161.     , GRAPHICS_BASE_NAME)
  162.  
  163. #define ClearEOL(rp) \
  164.     LP1NR(0x2a, ClearEOL, struct RastPort *, rp, a1, \
  165.     , GRAPHICS_BASE_NAME)
  166.  
  167. #define ClearRectRegion(region, rectangle) \
  168.     LP2(0x20a, BOOL, ClearRectRegion, struct Region *, region, a0, struct Rectangle *, rectangle, a1, \
  169.     , GRAPHICS_BASE_NAME)
  170.  
  171. #define ClearRegion(region) \
  172.     LP1NR(0x210, ClearRegion, struct Region *, region, a0, \
  173.     , GRAPHICS_BASE_NAME)
  174.  
  175. #define ClearScreen(rp) \
  176.     LP1NR(0x30, ClearScreen, struct RastPort *, rp, a1, \
  177.     , GRAPHICS_BASE_NAME)
  178.  
  179. #define ClipBlit(srcRP, xSrc, ySrc, destRP, xDest, yDest, xSize, ySize, minterm) \
  180.     LP9NR(0x228, ClipBlit, struct RastPort *, srcRP, a0, long, xSrc, d0, long, ySrc, d1, struct RastPort *, destRP, a1, long, xDest, d2, long, yDest, d3, long, xSize, d4, long, ySize, d5, unsigned long, minterm, d6, \
  181.     , GRAPHICS_BASE_NAME)
  182.  
  183. #define CloseFont(textFont) \
  184.     LP1NR(0x4e, CloseFont, struct TextFont *, textFont, a1, \
  185.     , GRAPHICS_BASE_NAME)
  186.  
  187. #define CloseMonitor(monitorSpec) \
  188.     LP1(0x2d0, BOOL, CloseMonitor, struct MonitorSpec *, monitorSpec, a0, \
  189.     , GRAPHICS_BASE_NAME)
  190.  
  191. #define CoerceMode(vp, monitorid, flags) \
  192.     LP3(0x3a8, ULONG, CoerceMode, struct ViewPort *, vp, a0, unsigned long, monitorid, d0, unsigned long, flags, d1, \
  193.     , GRAPHICS_BASE_NAME)
  194.  
  195. #define CopySBitMap(layer) \
  196.     LP1NR(0x1c2, CopySBitMap, struct Layer *, layer, a0, \
  197.     , GRAPHICS_BASE_NAME)
  198.  
  199. #define DisownBlitter() \
  200.     LP0NR(0x1ce, DisownBlitter, \
  201.     , GRAPHICS_BASE_NAME)
  202.  
  203. #define DisposeRegion(region) \
  204.     LP1NR(0x216, DisposeRegion, struct Region *, region, a0, \
  205.     , GRAPHICS_BASE_NAME)
  206.  
  207. #define DoCollision(rp) \
  208.     LP1NR(0x6c, DoCollision, struct RastPort *, rp, a1, \
  209.     , GRAPHICS_BASE_NAME)
  210.  
  211. #define Draw(rp, x, y) \
  212.     LP3NR(0xf6, Draw, struct RastPort *, rp, a1, long, x, d0, long, y, d1, \
  213.     , GRAPHICS_BASE_NAME)
  214.  
  215. #define DrawEllipse(rp, xCenter, yCenter, a, b) \
  216.     LP5NR(0xb4, DrawEllipse, struct RastPort *, rp, a1, long, xCenter, d0, long, yCenter, d1, long, a, d2, long, b, d3, \
  217.     , GRAPHICS_BASE_NAME)
  218.  
  219. #define DrawGList(rp, vp) \
  220.     LP2NR(0x72, DrawGList, struct RastPort *, rp, a1, struct ViewPort *, vp, a0, \
  221.     , GRAPHICS_BASE_NAME)
  222.  
  223. #define EraseRect(rp, xMin, yMin, xMax, yMax) \
  224.     LP5NR(0x32a, EraseRect, struct RastPort *, rp, a1, long, xMin, d0, long, yMin, d1, long, xMax, d2, long, yMax, d3, \
  225.     , GRAPHICS_BASE_NAME)
  226.  
  227. #define ExtendFont(font, fontTags) \
  228.     LP2(0x330, ULONG, ExtendFont, struct TextFont *, font, a0, struct TagItem *, fontTags, a1, \
  229.     , GRAPHICS_BASE_NAME)
  230.  
  231. #ifndef NO_INLINE_STDARG
  232. #define ExtendFontTags(a0, tags...) \
  233.     ({ULONG _tags[] = { tags }; ExtendFont((a0), (struct TagItem *)_tags);})
  234. #endif /* !NO_INLINE_STDARG */
  235.  
  236. #define FindColor(cm, r, g, b, maxcolor) \
  237.     LP5(0x3f0, LONG, FindColor, struct ColorMap *, cm, a3, unsigned long, r, d1, unsigned long, g, d2, unsigned long, b, d3, long, maxcolor, d4, \
  238.     , GRAPHICS_BASE_NAME)
  239.  
  240. #define FindDisplayInfo(displayID) \
  241.     LP1(0x2d6, DisplayInfoHandle, FindDisplayInfo, unsigned long, displayID, d0, \
  242.     , GRAPHICS_BASE_NAME)
  243.  
  244. #define Flood(rp, mode, x, y) \
  245.     LP4(0x14a, BOOL, Flood, struct RastPort *, rp, a1, unsigned long, mode, d2, long, x, d0, long, y, d1, \
  246.     , GRAPHICS_BASE_NAME)
  247.  
  248. #define FontExtent(font, fontExtent) \
  249.     LP2NR(0x2fa, FontExtent, struct TextFont *, font, a0, struct TextExtent *, fontExtent, a1, \
  250.     , GRAPHICS_BASE_NAME)
  251.  
  252. #define FreeBitMap(bm) \
  253.     LP1NR(0x39c, FreeBitMap, struct BitMap *, bm, a0, \
  254.     , GRAPHICS_BASE_NAME)
  255.  
  256. #define FreeColorMap(colorMap) \
  257.     LP1NR(0x240, FreeColorMap, struct ColorMap *, colorMap, a0, \
  258.     , GRAPHICS_BASE_NAME)
  259.  
  260. #define FreeCopList(copList) \
  261.     LP1NR(0x222, FreeCopList, struct CopList *, copList, a0, \
  262.     , GRAPHICS_BASE_NAME)
  263.  
  264. #define FreeCprList(cprList) \
  265.     LP1NR(0x234, FreeCprList, struct cprlist *, cprList, a0, \
  266.     , GRAPHICS_BASE_NAME)
  267.  
  268. #define FreeDBufInfo(dbi) \
  269.     LP1NR(0x3cc, FreeDBufInfo, struct DBufInfo *, dbi, a1, \
  270.     , GRAPHICS_BASE_NAME)
  271.  
  272. #define FreeGBuffers(anOb, rp, flag) \
  273.     LP3NR(0x258, FreeGBuffers, struct AnimOb *, anOb, a0, struct RastPort *, rp, a1, long, flag, d0, \
  274.     , GRAPHICS_BASE_NAME)
  275.  
  276. #define FreeRaster(p, width, height) \
  277.     LP3NR(0x1f2, FreeRaster, PLANEPTR, p, a0, unsigned long, width, d0, unsigned long, height, d1, \
  278.     , GRAPHICS_BASE_NAME)
  279.  
  280. #define FreeSprite(num) \
  281.     LP1NR(0x19e, FreeSprite, long, num, d0, \
  282.     , GRAPHICS_BASE_NAME)
  283.  
  284. #define FreeSpriteData(sp) \
  285.     LP1NR(0x408, FreeSpriteData, struct ExtSprite *, sp, a2, \
  286.     , GRAPHICS_BASE_NAME)
  287.  
  288. #define FreeVPortCopLists(vp) \
  289.     LP1NR(0x21c, FreeVPortCopLists, struct ViewPort *, vp, a0, \
  290.     , GRAPHICS_BASE_NAME)
  291.  
  292. #define GetAPen(rp) \
  293.     LP1(0x35a, ULONG, GetAPen, struct RastPort *, rp, a0, \
  294.     , GRAPHICS_BASE_NAME)
  295.  
  296. #define GetBPen(rp) \
  297.     LP1(0x360, ULONG, GetBPen, struct RastPort *, rp, a0, \
  298.     , GRAPHICS_BASE_NAME)
  299.  
  300. #define GetBitMapAttr(bm, attrnum) \
  301.     LP2(0x3c0, ULONG, GetBitMapAttr, struct BitMap *, bm, a0, unsigned long, attrnum, d1, \
  302.     , GRAPHICS_BASE_NAME)
  303.  
  304. #define GetColorMap(entries) \
  305.     LP1(0x23a, struct ColorMap *, GetColorMap, long, entries, d0, \
  306.     , GRAPHICS_BASE_NAME)
  307.  
  308. #define GetDisplayInfoData(handle, buf, size, tagID, displayID) \
  309.     LP5(0x2f4, ULONG, GetDisplayInfoData, DisplayInfoHandle, handle, a0, UBYTE *, buf, a1, unsigned long, size, d0, unsigned long, tagID, d1, unsigned long, displayID, d2, \
  310.     , GRAPHICS_BASE_NAME)
  311.  
  312. #define GetDrMd(rp) \
  313.     LP1(0x366, ULONG, GetDrMd, struct RastPort *, rp, a0, \
  314.     , GRAPHICS_BASE_NAME)
  315.  
  316. #define GetExtSpriteA(ss, tags) \
  317.     LP2(0x3a2, LONG, GetExtSpriteA, struct ExtSprite *, ss, a2, struct TagItem *, tags, a1, \
  318.     , GRAPHICS_BASE_NAME)
  319.  
  320. #ifndef NO_INLINE_STDARG
  321. #define GetExtSprite(a0, tags...) \
  322.     ({ULONG _tags[] = { tags }; GetExtSpriteA((a0), (struct TagItem *)_tags);})
  323. #endif /* !NO_INLINE_STDARG */
  324.  
  325. #define GetGBuffers(anOb, rp, flag) \
  326.     LP3(0xa8, BOOL, GetGBuffers, struct AnimOb *, anOb, a0, struct RastPort *, rp, a1, long, flag, d0, \
  327.     , GRAPHICS_BASE_NAME)
  328.  
  329. #define GetOutlinePen(rp) \
  330.     LP1(0x36c, ULONG, GetOutlinePen, struct RastPort *, rp, a0, \
  331.     , GRAPHICS_BASE_NAME)
  332.  
  333. #define GetRGB32(cm, firstcolor, ncolors, table) \
  334.     LP4NR(0x384, GetRGB32, struct ColorMap *, cm, a0, unsigned long, firstcolor, d0, unsigned long, ncolors, d1, ULONG *, table, a1, \
  335.     , GRAPHICS_BASE_NAME)
  336.  
  337. #define GetRGB4(colorMap, entry) \
  338.     LP2(0x246, ULONG, GetRGB4, struct ColorMap *, colorMap, a0, long, entry, d0, \
  339.     , GRAPHICS_BASE_NAME)
  340.  
  341. #define GetRPAttrsA(rp, tags) \
  342.     LP2NR(0x414, GetRPAttrsA, struct RastPort *, rp, a0, struct TagItem *, tags, a1, \
  343.     , GRAPHICS_BASE_NAME)
  344.  
  345. #ifndef NO_INLINE_STDARG
  346. #define GetRPAttrs(a0, tags...) \
  347.     ({ULONG _tags[] = { tags }; GetRPAttrsA((a0), (struct TagItem *)_tags);})
  348. #endif /* !NO_INLINE_STDARG */
  349.  
  350. #define GetSprite(sprite, num) \
  351.     LP2(0x198, WORD, GetSprite, struct SimpleSprite *, sprite, a0, long, num, d0, \
  352.     , GRAPHICS_BASE_NAME)
  353.  
  354. #define GetVPModeID(vp) \
  355.     LP1(0x318, LONG, GetVPModeID, struct ViewPort *, vp, a0, \
  356.     , GRAPHICS_BASE_NAME)
  357.  
  358. #define GfxAssociate(associateNode, gfxNodePtr) \
  359.     LP2NR(0x2a0, GfxAssociate, APTR, associateNode, a0, APTR, gfxNodePtr, a1, \
  360.     , GRAPHICS_BASE_NAME)
  361.  
  362. #define GfxFree(gfxNodePtr) \
  363.     LP1NR(0x29a, GfxFree, APTR, gfxNodePtr, a0, \
  364.     , GRAPHICS_BASE_NAME)
  365.  
  366. #define GfxLookUp(associateNode) \
  367.     LP1(0x2be, APTR, GfxLookUp, APTR, associateNode, a0, \
  368.     , GRAPHICS_BASE_NAME)
  369.  
  370. #define GfxNew(gfxNodeType) \
  371.     LP1(0x294, APTR, GfxNew, unsigned long, gfxNodeType, d0, \
  372.     , GRAPHICS_BASE_NAME)
  373.  
  374. #define InitArea(areaInfo, vectorBuffer, maxVectors) \
  375.     LP3NR(0x11a, InitArea, struct AreaInfo *, areaInfo, a0, APTR, vectorBuffer, a1, long, maxVectors, d0, \
  376.     , GRAPHICS_BASE_NAME)
  377.  
  378. #define InitBitMap(bitMap, depth, width, height) \
  379.     LP4NR(0x186, InitBitMap, struct BitMap *, bitMap, a0, long, depth, d0, long, width, d1, long, height, d2, \
  380.     , GRAPHICS_BASE_NAME)
  381.  
  382. #define InitGMasks(anOb) \
  383.     LP1NR(0xae, InitGMasks, struct AnimOb *, anOb, a0, \
  384.     , GRAPHICS_BASE_NAME)
  385.  
  386. #define InitGels(head, tail, gelsInfo) \
  387.     LP3NR(0x78, InitGels, struct VSprite *, head, a0, struct VSprite *, tail, a1, struct GelsInfo *, gelsInfo, a2, \
  388.     , GRAPHICS_BASE_NAME)
  389.  
  390. #define InitMasks(vSprite) \
  391.     LP1NR(0x7e, InitMasks, struct VSprite *, vSprite, a0, \
  392.     , GRAPHICS_BASE_NAME)
  393.  
  394. #define InitRastPort(rp) \
  395.     LP1NR(0xc6, InitRastPort, struct RastPort *, rp, a1, \
  396.     , GRAPHICS_BASE_NAME)
  397.  
  398. #define InitTmpRas(tmpRas, buffer, size) \
  399.     LP3(0x1d4, struct TmpRas *, InitTmpRas, struct TmpRas *, tmpRas, a0, PLANEPTR, buffer, a1, long, size, d0, \
  400.     , GRAPHICS_BASE_NAME)
  401.  
  402. #define InitVPort(vp) \
  403.     LP1NR(0xcc, InitVPort, struct ViewPort *, vp, a0, \
  404.     , GRAPHICS_BASE_NAME)
  405.  
  406. #define InitView(view) \
  407.     LP1NR(0x168, InitView, struct View *, view, a1, \
  408.     , GRAPHICS_BASE_NAME)
  409.  
  410. #define LoadRGB32(vp, table) \
  411.     LP2NR(0x372, LoadRGB32, struct ViewPort *, vp, a0, ULONG *, table, a1, \
  412.     , GRAPHICS_BASE_NAME)
  413.  
  414. #define LoadRGB4(vp, colors, count) \
  415.     LP3NR(0xc0, LoadRGB4, struct ViewPort *, vp, a0, UWORD *, colors, a1, long, count, d0, \
  416.     , GRAPHICS_BASE_NAME)
  417.  
  418. #define LoadView(view) \
  419.     LP1NR(0xde, LoadView, struct View *, view, a1, \
  420.     , GRAPHICS_BASE_NAME)
  421.  
  422. #define LockLayerRom(layer) \
  423.     LP1NRA5(0x1b0, LockLayerRom, struct Layer *, layer, d7, \
  424.     , GRAPHICS_BASE_NAME)
  425.  
  426. #define MakeVPort(view, vp) \
  427.     LP2(0xd8, ULONG, MakeVPort, struct View *, view, a0, struct ViewPort *, vp, a1, \
  428.     , GRAPHICS_BASE_NAME)
  429.  
  430. #define ModeNotAvailable(modeID) \
  431.     LP1(0x31e, LONG, ModeNotAvailable, unsigned long, modeID, d0, \
  432.     , GRAPHICS_BASE_NAME)
  433.  
  434. #define Move(rp, x, y) \
  435.     LP3NR(0xf0, Move, struct RastPort *, rp, a1, long, x, d0, long, y, d1, \
  436.     , GRAPHICS_BASE_NAME)
  437.  
  438. #define MoveSprite(vp, sprite, x, y) \
  439.     LP4NR(0x1aa, MoveSprite, struct ViewPort *, vp, a0, struct SimpleSprite *, sprite, a1, long, x, d0, long, y, d1, \
  440.     , GRAPHICS_BASE_NAME)
  441.  
  442. #define MrgCop(view) \
  443.     LP1(0xd2, ULONG, MrgCop, struct View *, view, a1, \
  444.     , GRAPHICS_BASE_NAME)
  445.  
  446. #define NewRegion() \
  447.     LP0(0x204, struct Region *, NewRegion, \
  448.     , GRAPHICS_BASE_NAME)
  449.  
  450. #define NextDisplayInfo(displayID) \
  451.     LP1(0x2dc, ULONG, NextDisplayInfo, unsigned long, displayID, d0, \
  452.     , GRAPHICS_BASE_NAME)
  453.  
  454. #define ObtainBestPenA(cm, r, g, b, tags) \
  455.     LP5(0x348, LONG, ObtainBestPenA, struct ColorMap *, cm, a0, unsigned long, r, d1, unsigned long, g, d2, unsigned long, b, d3, struct TagItem *, tags, a1, \
  456.     , GRAPHICS_BASE_NAME)
  457.  
  458. #ifndef NO_INLINE_STDARG
  459. #define ObtainBestPen(a0, a1, a2, a3, tags...) \
  460.     ({ULONG _tags[] = { tags }; ObtainBestPenA((a0), (a1), (a2), (a3), (struct TagItem *)_tags);})
  461. #endif /* !NO_INLINE_STDARG */
  462.  
  463. #define ObtainPen(cm, n, r, g, b, f) \
  464.     LP6(0x3ba, ULONG, ObtainPen, struct ColorMap *, cm, a0, unsigned long, n, d0, unsigned long, r, d1, unsigned long, g, d2, unsigned long, b, d3, long, f, d4, \
  465.     , GRAPHICS_BASE_NAME)
  466.  
  467. #define OpenFont(textAttr) \
  468.     LP1(0x48, struct TextFont *, OpenFont, struct TextAttr *, textAttr, a0, \
  469.     , GRAPHICS_BASE_NAME)
  470.  
  471. #define OpenMonitor(monitorName, displayID) \
  472.     LP2(0x2ca, struct MonitorSpec *, OpenMonitor, STRPTR, monitorName, a1, unsigned long, displayID, d0, \
  473.     , GRAPHICS_BASE_NAME)
  474.  
  475. #define OrRectRegion(region, rectangle) \
  476.     LP2(0x1fe, BOOL, OrRectRegion, struct Region *, region, a0, struct Rectangle *, rectangle, a1, \
  477.     , GRAPHICS_BASE_NAME)
  478.  
  479. #define OrRegionRegion(srcRegion, destRegion) \
  480.     LP2(0x264, BOOL, OrRegionRegion, struct Region *, srcRegion, a0, struct Region *, destRegion, a1, \
  481.     , GRAPHICS_BASE_NAME)
  482.  
  483. #define OwnBlitter() \
  484.     LP0NR(0x1c8, OwnBlitter, \
  485.     , GRAPHICS_BASE_NAME)
  486.  
  487. #define PolyDraw(rp, count, polyTable) \
  488.     LP3NR(0x150, PolyDraw, struct RastPort *, rp, a1, long, count, d0, WORD *, polyTable, a0, \
  489.     , GRAPHICS_BASE_NAME)
  490.  
  491. #define QBSBlit(blit) \
  492.     LP1NR(0x126, QBSBlit, struct bltnode *, blit, a1, \
  493.     , GRAPHICS_BASE_NAME)
  494.  
  495. #define QBlit(blit) \
  496.     LP1NR(0x114, QBlit, struct bltnode *, blit, a1, \
  497.     , GRAPHICS_BASE_NAME)
  498.  
  499. #define ReadPixel(rp, x, y) \
  500.     LP3(0x13e, ULONG, ReadPixel, struct RastPort *, rp, a1, long, x, d0, long, y, d1, \
  501.     , GRAPHICS_BASE_NAME)
  502.  
  503. #define ReadPixelArray8(rp, xstart, ystart, xstop, ystop, array, temprp) \
  504.     LP7(0x30c, LONG, ReadPixelArray8, struct RastPort *, rp, a0, unsigned long, xstart, d0, unsigned long, ystart, d1, unsigned long, xstop, d2, unsigned long, ystop, d3, UBYTE *, array, a2, struct RastPort *, temprp, a1, \
  505.     , GRAPHICS_BASE_NAME)
  506.  
  507. #define ReadPixelLine8(rp, xstart, ystart, width, array, tempRP) \
  508.     LP6(0x300, LONG, ReadPixelLine8, struct RastPort *, rp, a0, unsigned long, xstart, d0, unsigned long, ystart, d1, unsigned long, width, d2, UBYTE *, array, a2, struct RastPort *, tempRP, a1, \
  509.     , GRAPHICS_BASE_NAME)
  510.  
  511. #define RectFill(rp, xMin, yMin, xMax, yMax) \
  512.     LP5NR(0x132, RectFill, struct RastPort *, rp, a1, long, xMin, d0, long, yMin, d1, long, xMax, d2, long, yMax, d3, \
  513.     , GRAPHICS_BASE_NAME)
  514.  
  515. #define ReleasePen(cm, n) \
  516.     LP2NR(0x3b4, ReleasePen, struct ColorMap *, cm, a0, unsigned long, n, d0, \
  517.     , GRAPHICS_BASE_NAME)
  518.  
  519. #define RemFont(textFont) \
  520.     LP1NR(0x1e6, RemFont, struct TextFont *, textFont, a1, \
  521.     , GRAPHICS_BASE_NAME)
  522.  
  523. #define RemIBob(bob, rp, vp) \
  524.     LP3NR(0x84, RemIBob, struct Bob *, bob, a0, struct RastPort *, rp, a1, struct ViewPort *, vp, a2, \
  525.     , GRAPHICS_BASE_NAME)
  526.  
  527. #define RemVSprite(vSprite) \
  528.     LP1NR(0x8a, RemVSprite, struct VSprite *, vSprite, a0, \
  529.     , GRAPHICS_BASE_NAME)
  530.  
  531. #define ScalerDiv(factor, numerator, denominator) \
  532.     LP3(0x2ac, UWORD, ScalerDiv, unsigned long, factor, d0, unsigned long, numerator, d1, unsigned long, denominator, d2, \
  533.     , GRAPHICS_BASE_NAME)
  534.  
  535. #define ScrollRaster(rp, dx, dy, xMin, yMin, xMax, yMax) \
  536.     LP7NR(0x18c, ScrollRaster, struct RastPort *, rp, a1, long, dx, d0, long, dy, d1, long, xMin, d2, long, yMin, d3, long, xMax, d4, long, yMax, d5, \
  537.     , GRAPHICS_BASE_NAME)
  538.  
  539. #define ScrollRasterBF(rp, dx, dy, xMin, yMin, xMax, yMax) \
  540.     LP7NR(0x3ea, ScrollRasterBF, struct RastPort *, rp, a1, long, dx, d0, long, dy, d1, long, xMin, d2, long, yMin, d3, long, xMax, d4, long, yMax, d5, \
  541.     , GRAPHICS_BASE_NAME)
  542.  
  543. #define ScrollVPort(vp) \
  544.     LP1NR(0x24c, ScrollVPort, struct ViewPort *, vp, a0, \
  545.     , GRAPHICS_BASE_NAME)
  546.  
  547. #define SetABPenDrMd(rp, apen, bpen, drawmode) \
  548.     LP4NR(0x37e, SetABPenDrMd, struct RastPort *, rp, a1, unsigned long, apen, d0, unsigned long, bpen, d1, unsigned long, drawmode, d2, \
  549.     , GRAPHICS_BASE_NAME)
  550.  
  551. #define SetAPen(rp, pen) \
  552.     LP2NR(0x156, SetAPen, struct RastPort *, rp, a1, unsigned long, pen, d0, \
  553.     , GRAPHICS_BASE_NAME)
  554.  
  555. #define SetBPen(rp, pen) \
  556.     LP2NR(0x15c, SetBPen, struct RastPort *, rp, a1, unsigned long, pen, d0, \
  557.     , GRAPHICS_BASE_NAME)
  558.  
  559. #define SetChipRev(want) \
  560.     LP1(0x378, ULONG, SetChipRev, unsigned long, want, d0, \
  561.     , GRAPHICS_BASE_NAME)
  562.  
  563. #define SetCollision(num, routine, gelsInfo) \
  564.     LP3NRFP(0x90, SetCollision, unsigned long, num, d0, __fpt, routine, a0, struct GelsInfo *, gelsInfo, a1, \
  565.     , GRAPHICS_BASE_NAME, void (*__fpt)(struct VSprite *vSprite, APTR))
  566.  
  567. #define SetDrMd(rp, drawMode) \
  568.     LP2NR(0x162, SetDrMd, struct RastPort *, rp, a1, unsigned long, drawMode, d0, \
  569.     , GRAPHICS_BASE_NAME)
  570.  
  571. #define SetFont(rp, textFont) \
  572.     LP2(0x42, LONG, SetFont, struct RastPort *, rp, a1, struct TextFont *, textFont, a0, \
  573.     , GRAPHICS_BASE_NAME)
  574.  
  575. #define SetMaxPen(rp, maxpen) \
  576.     LP2NR(0x3de, SetMaxPen, struct RastPort *, rp, a0, unsigned long, maxpen, d0, \
  577.     , GRAPHICS_BASE_NAME)
  578.  
  579. #define SetOutlinePen(rp, pen) \
  580.     LP2(0x3d2, ULONG, SetOutlinePen, struct RastPort *, rp, a0, unsigned long, pen, d0, \
  581.     , GRAPHICS_BASE_NAME)
  582.  
  583. #define SetRGB32(vp, n, r, g, b) \
  584.     LP5NR(0x354, SetRGB32, struct ViewPort *, vp, a0, unsigned long, n, d0, unsigned long, r, d1, unsigned long, g, d2, unsigned long, b, d3, \
  585.     , GRAPHICS_BASE_NAME)
  586.  
  587. #define SetRGB32CM(cm, n, r, g, b) \
  588.     LP5NR(0x3e4, SetRGB32CM, struct ColorMap *, cm, a0, unsigned long, n, d0, unsigned long, r, d1, unsigned long, g, d2, unsigned long, b, d3, \
  589.     , GRAPHICS_BASE_NAME)
  590.  
  591. #define SetRGB4(vp, index, red, green, blue) \
  592.     LP5NR(0x120, SetRGB4, struct ViewPort *, vp, a0, long, index, d0, unsigned long, red, d1, unsigned long, green, d2, unsigned long, blue, d3, \
  593.     , GRAPHICS_BASE_NAME)
  594.  
  595. #define SetRGB4CM(colorMap, index, red, green, blue) \
  596.     LP5NR(0x276, SetRGB4CM, struct ColorMap *, colorMap, a0, long, index, d0, unsigned long, red, d1, unsigned long, green, d2, unsigned long, blue, d3, \
  597.     , GRAPHICS_BASE_NAME)
  598.  
  599. #define SetRPAttrsA(rp, tags) \
  600.     LP2NR(0x40e, SetRPAttrsA, struct RastPort *, rp, a0, struct TagItem *, tags, a1, \
  601.     , GRAPHICS_BASE_NAME)
  602.  
  603. #ifndef NO_INLINE_STDARG
  604. #define SetRPAttrs(a0, tags...) \
  605.     ({ULONG _tags[] = { tags }; SetRPAttrsA((a0), (struct TagItem *)_tags);})
  606. #endif /* !NO_INLINE_STDARG */
  607.  
  608. #define SetRast(rp, pen) \
  609.     LP2NR(0xea, SetRast, struct RastPort *, rp, a1, unsigned long, pen, d0, \
  610.     , GRAPHICS_BASE_NAME)
  611.  
  612. #define SetSoftStyle(rp, style, enable) \
  613.     LP3(0x5a, ULONG, SetSoftStyle, struct RastPort *, rp, a1, unsigned long, style, d0, unsigned long, enable, d1, \
  614.     , GRAPHICS_BASE_NAME)
  615.  
  616. #define SetWriteMask(rp, msk) \
  617.     LP2(0x3d8, ULONG, SetWriteMask, struct RastPort *, rp, a0, unsigned long, msk, d0, \
  618.     , GRAPHICS_BASE_NAME)
  619.  
  620. #define SortGList(rp) \
  621.     LP1NR(0x96, SortGList, struct RastPort *, rp, a1, \
  622.     , GRAPHICS_BASE_NAME)
  623.  
  624. #define StripFont(font) \
  625.     LP1NR(0x336, StripFont, struct TextFont *, font, a0, \
  626.     , GRAPHICS_BASE_NAME)
  627.  
  628. #define SyncSBitMap(layer) \
  629.     LP1NR(0x1bc, SyncSBitMap, struct Layer *, layer, a0, \
  630.     , GRAPHICS_BASE_NAME)
  631.  
  632. #define Text(rp, string, count) \
  633.     LP3(0x3c, LONG, Text, struct RastPort *, rp, a1, STRPTR, string, a0, unsigned long, count, d0, \
  634.     , GRAPHICS_BASE_NAME)
  635.  
  636. #define TextExtent(rp, string, count, textExtent) \
  637.     LP4(0x2b2, WORD, TextExtent, struct RastPort *, rp, a1, STRPTR, string, a0, long, count, d0, struct TextExtent *, textExtent, a2, \
  638.     , GRAPHICS_BASE_NAME)
  639.  
  640. #define TextFit(rp, string, strLen, textExtent, constrainingExtent, strDirection, constrainingBitWidth, constrainingBitHeight) \
  641.     LP8(0x2b8, ULONG, TextFit, struct RastPort *, rp, a1, STRPTR, string, a0, unsigned long, strLen, d0, struct TextExtent *, textExtent, a2, struct TextExtent *, constrainingExtent, a3, long, strDirection, d1, unsigned long, constrainingBitWidth, d2, unsigned long, constrainingBitHeight, d3, \
  642.     , GRAPHICS_BASE_NAME)
  643.  
  644. #define TextLength(rp, string, count) \
  645.     LP3(0x36, WORD, TextLength, struct RastPort *, rp, a1, STRPTR, string, a0, unsigned long, count, d0, \
  646.     , GRAPHICS_BASE_NAME)
  647.  
  648. #define UCopperListInit(uCopList, n) \
  649.     LP2(0x252, struct CopList *, UCopperListInit, struct UCopList *, uCopList, a0, long, n, d0, \
  650.     , GRAPHICS_BASE_NAME)
  651.  
  652. #define UnlockLayerRom(layer) \
  653.     LP1NRA5(0x1b6, UnlockLayerRom, struct Layer *, layer, d7, \
  654.     , GRAPHICS_BASE_NAME)
  655.  
  656. #define VBeamPos() \
  657.     LP0(0x180, LONG, VBeamPos, \
  658.     , GRAPHICS_BASE_NAME)
  659.  
  660. #define VideoControl(colorMap, tagarray) \
  661.     LP2(0x2c4, BOOL, VideoControl, struct ColorMap *, colorMap, a0, struct TagItem *, tagarray, a1, \
  662.     , GRAPHICS_BASE_NAME)
  663.  
  664. #ifndef NO_INLINE_STDARG
  665. #define VideoControlTags(a0, tags...) \
  666.     ({ULONG _tags[] = { tags }; VideoControl((a0), (struct TagItem *)_tags);})
  667. #endif /* !NO_INLINE_STDARG */
  668.  
  669. #define WaitBOVP(vp) \
  670.     LP1NR(0x192, WaitBOVP, struct ViewPort *, vp, a0, \
  671.     , GRAPHICS_BASE_NAME)
  672.  
  673. #define WaitBlit() \
  674.     LP0NR(0xe4, WaitBlit, \
  675.     , GRAPHICS_BASE_NAME)
  676.  
  677. #define WaitTOF() \
  678.     LP0NR(0x10e, WaitTOF, \
  679.     , GRAPHICS_BASE_NAME)
  680.  
  681. #define WeighTAMatch(reqTextAttr, targetTextAttr, targetTags) \
  682.     LP3(0x324, WORD, WeighTAMatch, struct TextAttr *, reqTextAttr, a0, struct TextAttr *, targetTextAttr, a1, struct TagItem *, targetTags, a2, \
  683.     , GRAPHICS_BASE_NAME)
  684.  
  685. #ifndef NO_INLINE_STDARG
  686. #define WeighTAMatchTags(a0, a1, tags...) \
  687.     ({ULONG _tags[] = { tags }; WeighTAMatch((a0), (a1), (struct TagItem *)_tags);})
  688. #endif /* !NO_INLINE_STDARG */
  689.  
  690. #define WriteChunkyPixels(rp, xstart, ystart, xstop, ystop, array, bytesperrow) \
  691.     LP7NR(0x420, WriteChunkyPixels, struct RastPort *, rp, a0, unsigned long, xstart, d0, unsigned long, ystart, d1, unsigned long, xstop, d2, unsigned long, ystop, d3, UBYTE *, array, a2, long, bytesperrow, d4, \
  692.     , GRAPHICS_BASE_NAME)
  693.  
  694. #define WritePixel(rp, x, y) \
  695.     LP3(0x144, LONG, WritePixel, struct RastPort *, rp, a1, long, x, d0, long, y, d1, \
  696.     , GRAPHICS_BASE_NAME)
  697.  
  698. #define WritePixelArray8(rp, xstart, ystart, xstop, ystop, array, temprp) \
  699.     LP7(0x312, LONG, WritePixelArray8, struct RastPort *, rp, a0, unsigned long, xstart, d0, unsigned long, ystart, d1, unsigned long, xstop, d2, unsigned long, ystop, d3, UBYTE *, array, a2, struct RastPort *, temprp, a1, \
  700.     , GRAPHICS_BASE_NAME)
  701.  
  702. #define WritePixelLine8(rp, xstart, ystart, width, array, tempRP) \
  703.     LP6(0x306, LONG, WritePixelLine8, struct RastPort *, rp, a0, unsigned long, xstart, d0, unsigned long, ystart, d1, unsigned long, width, d2, UBYTE *, array, a2, struct RastPort *, tempRP, a1, \
  704.     , GRAPHICS_BASE_NAME)
  705.  
  706. #define XorRectRegion(region, rectangle) \
  707.     LP2(0x22e, BOOL, XorRectRegion, struct Region *, region, a0, struct Rectangle *, rectangle, a1, \
  708.     , GRAPHICS_BASE_NAME)
  709.  
  710. #define XorRegionRegion(srcRegion, destRegion) \
  711.     LP2(0x26a, BOOL, XorRegionRegion, struct Region *, srcRegion, a0, struct Region *, destRegion, a1, \
  712.     , GRAPHICS_BASE_NAME)
  713.  
  714. #endif /* _INLINE_GRAPHICS_H */
  715.