home *** CD-ROM | disk | FTP | other *** search
/ RISCWORLD 7 / RISCWORLD_VOL7.iso / Software / Issue6 / SDL.ZIP / !SDL / include / SDL / h / SDL_gfxPrimitives < prev    next >
Encoding:
Text File  |  2006-09-25  |  7.3 KB  |  194 lines

  1. /* 
  2.  
  3.  SDL_gfxPrimitives: graphics primitives for SDL
  4.  
  5.  LGPL (c) A. Schiffler
  6.  
  7. */
  8.  
  9. #ifndef _SDL_gfxPrimitives_h
  10. #define _SDL_gfxPrimitives_h
  11.  
  12. #include <math.h>
  13. #ifndef M_PI
  14. #define M_PI    3.141592654
  15. #endif
  16.  
  17. #include "SDL.h"
  18.  
  19. /* Set up for C function definitions, even when using C++ */
  20. #ifdef __cplusplus
  21. extern "C" {
  22. #endif
  23.  
  24. /* ----- Versioning */
  25.  
  26. #define SDL_GFXPRIMITIVES_MAJOR    2
  27. #define SDL_GFXPRIMITIVES_MINOR    0
  28. #define SDL_GFXPRIMITIVES_MICRO    13
  29.  
  30. /* ----- W32 DLL interface */
  31.  
  32. #ifdef WIN32
  33. #ifdef BUILD_DLL
  34. #define DLLINTERFACE __declspec(dllexport)
  35. #else
  36. #define DLLINTERFACE __declspec(dllimport)
  37. #endif
  38. #else
  39. #define DLLINTERFACE
  40. #endif
  41.  
  42. /* ----- Prototypes */
  43.  
  44. /* Note: all ___Color routines expect the color to be in format 0xRRGGBBAA */
  45.  
  46. /* Pixel */
  47.  
  48.     DLLINTERFACE int pixelColor(SDL_Surface * dst, Sint16 x, Sint16 y, Uint32 color);
  49.     DLLINTERFACE int pixelRGBA(SDL_Surface * dst, Sint16 x, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  50.  
  51. /* Horizontal line */
  52.  
  53.     DLLINTERFACE int hlineColor(SDL_Surface * dst, Sint16 x1, Sint16 x2, Sint16 y, Uint32 color);
  54.     DLLINTERFACE int hlineRGBA(SDL_Surface * dst, Sint16 x1, Sint16 x2, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  55.  
  56. /* Vertical line */
  57.  
  58.     DLLINTERFACE int vlineColor(SDL_Surface * dst, Sint16 x, Sint16 y1, Sint16 y2, Uint32 color);
  59.     DLLINTERFACE int vlineRGBA(SDL_Surface * dst, Sint16 x, Sint16 y1, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  60.  
  61. /* Rectangle */
  62.  
  63.     DLLINTERFACE int rectangleColor(SDL_Surface * dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color);
  64.     DLLINTERFACE int rectangleRGBA(SDL_Surface * dst, Sint16 x1, Sint16 y1,
  65.                    Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  66.  
  67. /* Filled rectangle (Box) */
  68.  
  69.     DLLINTERFACE int boxColor(SDL_Surface * dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color);
  70.     DLLINTERFACE int boxRGBA(SDL_Surface * dst, Sint16 x1, Sint16 y1, Sint16 x2,
  71.                  Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  72.  
  73. /* Line */
  74.  
  75.     DLLINTERFACE int lineColor(SDL_Surface * dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color);
  76.     DLLINTERFACE int lineRGBA(SDL_Surface * dst, Sint16 x1, Sint16 y1,
  77.                   Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  78.  
  79. /* AA Line */
  80.     DLLINTERFACE int aalineColor(SDL_Surface * dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color);
  81.     DLLINTERFACE int aalineRGBA(SDL_Surface * dst, Sint16 x1, Sint16 y1,
  82.                 Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  83.  
  84. /* Circle */
  85.  
  86.     DLLINTERFACE int circleColor(SDL_Surface * dst, Sint16 x, Sint16 y, Sint16 r, Uint32 color);
  87.     DLLINTERFACE int circleRGBA(SDL_Surface * dst, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  88.  
  89. /* AA Circle */
  90.  
  91.     DLLINTERFACE int aacircleColor(SDL_Surface * dst, Sint16 x, Sint16 y, Sint16 r, Uint32 color);
  92.     DLLINTERFACE int aacircleRGBA(SDL_Surface * dst, Sint16 x, Sint16 y,
  93.                   Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  94.  
  95. /* Filled Circle */
  96.  
  97.     DLLINTERFACE int filledCircleColor(SDL_Surface * dst, Sint16 x, Sint16 y, Sint16 r, Uint32 color);
  98.     DLLINTERFACE int filledCircleRGBA(SDL_Surface * dst, Sint16 x, Sint16 y,
  99.                       Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  100.  
  101. /* Ellipse */
  102.  
  103.     DLLINTERFACE int ellipseColor(SDL_Surface * dst, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color);
  104.     DLLINTERFACE int ellipseRGBA(SDL_Surface * dst, Sint16 x, Sint16 y,
  105.                  Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  106.  
  107. /* AA Ellipse */
  108.  
  109.     DLLINTERFACE int aaellipseColor(SDL_Surface * dst, Sint16 xc, Sint16 yc, Sint16 rx, Sint16 ry, Uint32 color);
  110.     DLLINTERFACE int aaellipseRGBA(SDL_Surface * dst, Sint16 x, Sint16 y,
  111.                    Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  112.  
  113. /* Filled Ellipse */
  114.  
  115.     DLLINTERFACE int filledEllipseColor(SDL_Surface * dst, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color);
  116.     DLLINTERFACE int filledEllipseRGBA(SDL_Surface * dst, Sint16 x, Sint16 y,
  117.                        Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  118.  
  119. #define CLOCKWISE
  120.  
  121. /* Pie */
  122.  
  123.     DLLINTERFACE int pieColor(SDL_Surface * dst, Sint16 x, Sint16 y, Sint16 rad,
  124.                   Sint16 start, Sint16 end, Uint32 color);
  125.     DLLINTERFACE int pieRGBA(SDL_Surface * dst, Sint16 x, Sint16 y, Sint16 rad,
  126.                  Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  127.  
  128. /* Filled Pie */
  129.  
  130.     DLLINTERFACE int filledPieColor(SDL_Surface * dst, Sint16 x, Sint16 y, Sint16 rad,
  131.                     Sint16 start, Sint16 end, Uint32 color);
  132.     DLLINTERFACE int filledPieRGBA(SDL_Surface * dst, Sint16 x, Sint16 y, Sint16 rad,
  133.                    Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  134.  
  135. /* Trigon */
  136.  
  137.     DLLINTERFACE int trigonColor(SDL_Surface * dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color);
  138.     DLLINTERFACE int trigonRGBA(SDL_Surface * dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3,
  139.                  Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  140.  
  141. /* AA-Trigon */
  142.  
  143.     DLLINTERFACE int aatrigonColor(SDL_Surface * dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color);
  144.     DLLINTERFACE int aatrigonRGBA(SDL_Surface * dst,  Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3,
  145.                    Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  146.  
  147. /* Filled Trigon */
  148.  
  149.     DLLINTERFACE int filledTrigonColor(SDL_Surface * dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color);
  150.     DLLINTERFACE int filledTrigonRGBA(SDL_Surface * dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3,
  151.                        Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  152.  
  153. /* Polygon */
  154.  
  155.     DLLINTERFACE int polygonColor(SDL_Surface * dst, const Sint16 * vx, const Sint16 * vy, int n, Uint32 color);
  156.     DLLINTERFACE int polygonRGBA(SDL_Surface * dst, const Sint16 * vx, const Sint16 * vy,
  157.                  int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  158.  
  159. /* AA-Polygon */
  160.  
  161.     DLLINTERFACE int aapolygonColor(SDL_Surface * dst, const Sint16 * vx, const Sint16 * vy, int n, Uint32 color);
  162.     DLLINTERFACE int aapolygonRGBA(SDL_Surface * dst, const Sint16 * vx, const Sint16 * vy,
  163.                    int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  164.  
  165. /* Filled Polygon */
  166.  
  167.     DLLINTERFACE int filledPolygonColor(SDL_Surface * dst, const Sint16 * vx, const Sint16 * vy, int n, Uint32 color);
  168.     DLLINTERFACE int filledPolygonRGBA(SDL_Surface * dst, const Sint16 * vx,
  169.                        const Sint16 * vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  170.  
  171. /* Bezier */
  172. /* s = number of steps */
  173.  
  174.     DLLINTERFACE int bezierColor(SDL_Surface * dst, const Sint16 * vx, const Sint16 * vy, int n, int s, Uint32 color);
  175.     DLLINTERFACE int bezierRGBA(SDL_Surface * dst, const Sint16 * vx, const Sint16 * vy,
  176.                  int n, int s, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  177.  
  178.  
  179. /* Characters/Strings */
  180.  
  181.     DLLINTERFACE int characterColor(SDL_Surface * dst, Sint16 x, Sint16 y, char c, Uint32 color);
  182.     DLLINTERFACE int characterRGBA(SDL_Surface * dst, Sint16 x, Sint16 y, char c, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  183.     DLLINTERFACE int stringColor(SDL_Surface * dst, Sint16 x, Sint16 y, const char *c, Uint32 color);
  184.     DLLINTERFACE int stringRGBA(SDL_Surface * dst, Sint16 x, Sint16 y, const char *c, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
  185.  
  186.     DLLINTERFACE void gfxPrimitivesSetFont(const void *fontdata, int cw, int ch);
  187.  
  188. /* Ends C function definitions when using C++ */
  189. #ifdef __cplusplus
  190. }
  191. #endif
  192.  
  193. #endif                /* _SDL_gfxPrimitives_h */
  194.