]>
Commit | Line | Data |
---|---|---|
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 16 | |
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 | DLLINTERFACE int texturedPolygon(SDL_Surface * dst, const Sint16 * vx, const Sint16 * vy, int n, SDL_Surface * texture,int texture_dx,int texture_dy); | |
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 */ |