rubysdl 1.3.1 → 2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/MANIFEST +22 -2
- data/NEWS.en +80 -0
- data/NEWS.ja +83 -0
- data/README.en +2 -1
- data/README.ja +2 -2
- data/doc-en/Makefile +18 -0
- data/doc-en/cdrom.rsd +417 -0
- data/doc-en/collision.rsd +174 -0
- data/doc-en/event.rsd +1476 -0
- data/doc-en/font.rsd +811 -0
- data/doc-en/general.rsd +43 -0
- data/doc-en/init.rsd +168 -0
- data/doc-en/joystick.rsd +401 -0
- data/doc-en/mixer.rsd +869 -0
- data/doc-en/mpeg.rsd +585 -0
- data/doc-en/opengl.rsd +155 -0
- data/doc-en/sdlskk.rsd +472 -0
- data/doc-en/time.rsd +46 -0
- data/doc-en/video.rsd +2806 -0
- data/doc-en/wm.rsd +112 -0
- data/doc/Makefile +1 -1
- data/doc/cdrom.rsd +3 -3
- data/doc/event.rsd +178 -179
- data/doc/general.rsd +10 -0
- data/doc/init.rsd +2 -2
- data/doc/joystick.rsd +29 -5
- data/doc/mixer.rsd +20 -0
- data/doc/rsd.rb +42 -9
- data/doc/sdlskk.rsd +7 -7
- data/doc/video.rsd +461 -168
- data/doc/wm.rsd +2 -2
- data/extconf.rb +1 -8
- data/lib/rubysdl_aliases.rb +52 -190
- data/lib/rubysdl_compatible_ver1.rb +243 -0
- data/lib/sdl.rb +58 -92
- data/rubysdl.h +59 -68
- data/rubysdl_cdrom.c +125 -102
- data/{rubysdl_doc.en.rd → rubysdl_doc_old.en.rd} +3 -2
- data/rubysdl_event.c +318 -255
- data/rubysdl_event_key.c +299 -287
- data/rubysdl_image.c +37 -13
- data/rubysdl_joystick.c +180 -67
- data/rubysdl_kanji.c +61 -75
- data/rubysdl_main.c +65 -138
- data/rubysdl_mixer.c +339 -214
- data/rubysdl_mouse.c +50 -43
- data/rubysdl_opengl.c +31 -28
- data/rubysdl_pixel.c +17 -28
- data/rubysdl_ref.en.html +5658 -0
- data/rubysdl_ref.en.rd +6337 -0
- data/rubysdl_ref.html +2253 -1964
- data/rubysdl_ref.rd +823 -469
- data/rubysdl_rwops.c +9 -6
- data/rubysdl_sdlskk.c +137 -165
- data/rubysdl_sge_video.c +355 -469
- data/rubysdl_smpeg.c +189 -190
- data/rubysdl_time.c +1 -1
- data/rubysdl_ttf.c +147 -215
- data/rubysdl_video.c +486 -405
- data/rubysdl_wm.c +30 -30
- data/sample/aadraw.rb +9 -9
- data/sample/alpha.rb +12 -13
- data/sample/alphadraw.rb +10 -10
- data/sample/bfont.rb +4 -4
- data/sample/cdrom.rb +11 -4
- data/sample/collision.rb +20 -20
- data/sample/cursor.rb +5 -5
- data/sample/ellipses.rb +20 -16
- data/sample/event2.rb +11 -9
- data/sample/font.rb +4 -4
- data/sample/fpstimer.rb +3 -3
- data/sample/icon.bmp.gz +0 -0
- data/sample/icon.png +0 -0
- data/sample/joy2.rb +14 -14
- data/sample/kanji.rb +7 -7
- data/sample/load_from_io.rb +44 -0
- data/sample/movesp.rb +13 -12
- data/sample/playmod.rb +2 -3
- data/sample/plaympeg.rb +8 -8
- data/sample/playwave.rb +5 -6
- data/sample/sdlskk.rb +11 -11
- data/sample/sgetest.rb +14 -12
- data/sample/stetris.rb +12 -13
- data/sample/testgl.rb +13 -14
- data/sample/testsprite.rb +12 -11
- data/sample/transformblit.rb +23 -22
- metadata +62 -35
- data/rubysdl_event2.c +0 -417
data/rubysdl_sge_video.c
CHANGED
@@ -22,601 +22,487 @@
|
|
22
22
|
#include "rubysdl.h"
|
23
23
|
#include <sge.h>
|
24
24
|
|
25
|
-
static VALUE
|
26
|
-
|
27
|
-
return BOOL(sge_getLock());
|
28
|
-
}
|
25
|
+
static VALUE cCollisionMap = Qnil;
|
26
|
+
static VALUE cBMFont = Qnil;
|
29
27
|
|
30
|
-
|
31
|
-
|
32
|
-
if(RTEST(bool))
|
33
|
-
sge_Lock_ON();
|
34
|
-
else
|
35
|
-
sge_Lock_OFF();
|
36
|
-
return Qnil;
|
37
|
-
}
|
28
|
+
DEFINE_GET_STRUCT(sge_bmpFont, Get_sge_bmpFont, cBMFont, "SDL::BMFont");
|
29
|
+
DEFINE_GET_STRUCT(sge_cdata, Get_sge_cdata, cCollisionMap, "SDL::CollisionMap");
|
38
30
|
|
39
|
-
|
40
|
-
static VALUE sdl_getPixel(VALUE obj,VALUE x,VALUE y)
|
41
|
-
{
|
42
|
-
SDL_Surface *surface;
|
43
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
44
|
-
return UINT2NUM( sge_GetPixel(surface,NUM2INT(x),NUM2INT(y)) );
|
45
|
-
}
|
46
|
-
static VALUE sdl_putPixel(VALUE obj,VALUE x,VALUE y,VALUE color)
|
47
|
-
{
|
48
|
-
SDL_Surface *surface;
|
49
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
50
|
-
sge_PutPixel(surface,NUM2INT(x),NUM2INT(y),VALUE2COLOR(color,surface->format));
|
51
|
-
return Qnil;
|
52
|
-
}
|
53
|
-
static VALUE sdl_drawLine(VALUE obj,VALUE x1,VALUE y1,VALUE x2,VALUE y2,VALUE color)
|
54
|
-
{
|
55
|
-
SDL_Surface *surface;
|
56
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
57
|
-
sge_Line( surface,NUM2INT(x1),NUM2INT(y1),NUM2INT(x2),NUM2INT(y2),
|
58
|
-
VALUE2COLOR(color,surface->format) );
|
59
|
-
return Qnil;
|
60
|
-
}
|
61
|
-
static VALUE sdl_drawAALine(VALUE obj,VALUE x1,VALUE y1,VALUE x2,VALUE y2,VALUE color)
|
62
|
-
{
|
63
|
-
SDL_Surface *surface;
|
64
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
65
|
-
sge_AALine( surface,NUM2INT(x1),NUM2INT(y1),NUM2INT(x2),NUM2INT(y2),
|
66
|
-
VALUE2COLOR(color,surface->format) );
|
67
|
-
return Qnil;
|
68
|
-
}
|
69
|
-
static VALUE sdl_drawLineAlpha(VALUE obj,VALUE x1,VALUE y1,VALUE x2,VALUE y2,VALUE color,VALUE alpha)
|
70
|
-
{
|
71
|
-
SDL_Surface *surface;
|
72
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
73
|
-
sge_LineAlpha( surface,NUM2INT(x1),NUM2INT(y1),NUM2INT(x2),NUM2INT(y2),
|
74
|
-
VALUE2COLOR(color,surface->format), NUM2UINT(alpha) );
|
75
|
-
return Qnil;
|
76
|
-
}
|
77
|
-
static VALUE sdl_drawAALineAlpha(VALUE obj,VALUE x1,VALUE y1,VALUE x2,VALUE y2,VALUE color,VALUE alpha)
|
31
|
+
static VALUE Surface_s_autoLock_p(VALUE klass)
|
78
32
|
{
|
79
|
-
|
80
|
-
|
81
|
-
sge_AALineAlpha( surface,NUM2INT(x1),NUM2INT(y1),NUM2INT(x2),NUM2INT(y2),
|
82
|
-
VALUE2COLOR(color,surface->format),NUM2UINT(alpha) );
|
83
|
-
return Qnil;
|
33
|
+
rb_secure(4);
|
34
|
+
return INT2BOOL(sge_getLock());
|
84
35
|
}
|
85
36
|
|
86
|
-
static VALUE
|
87
|
-
{
|
88
|
-
SDL_Surface *surface;
|
89
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
90
|
-
sge_Rect( surface,NUM2INT(x),NUM2INT(y),NUM2INT(x)+NUM2INT(w),
|
91
|
-
NUM2INT(y)+NUM2INT(h),VALUE2COLOR(color,surface->format) );
|
92
|
-
return Qnil;
|
93
|
-
}
|
94
|
-
static VALUE sdl_drawRectAlpha(VALUE obj,VALUE x,VALUE y,VALUE w,VALUE h,VALUE color,VALUE alpha)
|
95
|
-
{
|
96
|
-
SDL_Surface *surface;
|
97
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
98
|
-
sge_RectAlpha( surface,NUM2INT(x),NUM2INT(y),NUM2INT(x)+NUM2INT(w),
|
99
|
-
NUM2INT(y)+NUM2INT(h),VALUE2COLOR(color,surface->format),
|
100
|
-
NUM2UINT(alpha) );
|
101
|
-
return Qnil;
|
102
|
-
}
|
103
|
-
static VALUE sdl_drawFilledRectAlpha(VALUE obj,VALUE x,VALUE y,VALUE w,VALUE h,VALUE color,VALUE alpha)
|
104
|
-
{
|
105
|
-
SDL_Surface *surface;
|
106
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
107
|
-
sge_FilledRectAlpha( surface,NUM2INT(x),NUM2INT(y),NUM2INT(x)+NUM2INT(w),
|
108
|
-
NUM2INT(y)+NUM2INT(h),VALUE2COLOR(color,surface->format),
|
109
|
-
NUM2UINT(alpha) );
|
110
|
-
return Qnil;
|
111
|
-
}
|
112
|
-
static VALUE sdl_drawCircle(VALUE obj,VALUE x,VALUE y,VALUE r,VALUE color)
|
113
|
-
{
|
114
|
-
SDL_Surface *surface;
|
115
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
116
|
-
sge_Circle( surface,NUM2INT(x),NUM2INT(y),NUM2INT(r),
|
117
|
-
VALUE2COLOR(color,surface->format) );
|
118
|
-
return Qnil;
|
119
|
-
}
|
120
|
-
static VALUE sdl_drawAACircle(VALUE obj,VALUE x,VALUE y,VALUE r,VALUE color)
|
121
|
-
{
|
122
|
-
SDL_Surface *surface;
|
123
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
124
|
-
sge_AACircle( surface,NUM2INT(x),NUM2INT(y),NUM2INT(r),
|
125
|
-
VALUE2COLOR(color,surface->format) );
|
126
|
-
return Qnil;
|
127
|
-
}
|
128
|
-
static VALUE sdl_drawCircleAlpha(VALUE obj,VALUE x,VALUE y,VALUE r,VALUE color,VALUE alpha)
|
129
|
-
{
|
130
|
-
SDL_Surface *surface;
|
131
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
132
|
-
sge_CircleAlpha( surface,NUM2INT(x),NUM2INT(y),NUM2INT(r),
|
133
|
-
VALUE2COLOR(color,surface->format),NUM2UINT(alpha) );
|
134
|
-
return Qnil;
|
135
|
-
}
|
136
|
-
static VALUE sdl_drawAACircleAlpha(VALUE obj,VALUE x,VALUE y,VALUE r,VALUE color,
|
137
|
-
VALUE alpha)
|
37
|
+
static VALUE Surface_s_autoLockON(VALUE klass)
|
138
38
|
{
|
139
|
-
|
140
|
-
|
141
|
-
sge_AACircleAlpha( surface,NUM2INT(x),NUM2INT(y),NUM2INT(r),
|
142
|
-
VALUE2COLOR(color,surface->format),NUM2UINT(alpha) );
|
143
|
-
return Qnil;
|
144
|
-
}
|
145
|
-
static VALUE sdl_drawFilledCircle(VALUE obj,VALUE x,VALUE y,VALUE r,VALUE color)
|
146
|
-
{
|
147
|
-
SDL_Surface *surface;
|
148
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
149
|
-
sge_FilledCircle( surface,NUM2INT(x),NUM2INT(y),NUM2INT(r),
|
150
|
-
VALUE2COLOR(color,surface->format) );
|
151
|
-
return Qnil;
|
152
|
-
}
|
153
|
-
static VALUE sdl_drawAAFilledCircle(VALUE obj,VALUE x,VALUE y,VALUE r,VALUE color)
|
154
|
-
{
|
155
|
-
SDL_Surface *surface;
|
156
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
157
|
-
sge_AAFilledCircle( surface,NUM2INT(x),NUM2INT(y),NUM2INT(r),
|
158
|
-
VALUE2COLOR(color,surface->format) );
|
159
|
-
return Qnil;
|
160
|
-
}
|
161
|
-
static VALUE sdl_drawFilledCircleAlpha(VALUE obj,VALUE x,VALUE y,VALUE r,VALUE color,VALUE alpha)
|
162
|
-
{
|
163
|
-
SDL_Surface *surface;
|
164
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
165
|
-
sge_FilledCircleAlpha( surface,NUM2INT(x),NUM2INT(y),NUM2INT(r),
|
166
|
-
VALUE2COLOR(color,surface->format),NUM2UINT(alpha) );
|
167
|
-
return Qnil;
|
168
|
-
}
|
169
|
-
static VALUE sdl_drawEllipse(VALUE obj,VALUE x,VALUE y,VALUE rx,VALUE ry,
|
170
|
-
VALUE color)
|
171
|
-
{
|
172
|
-
SDL_Surface *surface;
|
173
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
174
|
-
sge_Ellipse( surface,NUM2INT(x),NUM2INT(y),NUM2INT(rx),NUM2INT(ry),
|
175
|
-
VALUE2COLOR(color,surface->format) );
|
176
|
-
return Qnil;
|
177
|
-
}
|
178
|
-
static VALUE sdl_drawAAEllipse(VALUE obj,VALUE x,VALUE y,VALUE rx,VALUE ry,
|
179
|
-
VALUE color)
|
180
|
-
{
|
181
|
-
SDL_Surface *surface;
|
182
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
183
|
-
sge_AAEllipse( surface,NUM2INT(x),NUM2INT(y),NUM2INT(rx),NUM2INT(ry),
|
184
|
-
VALUE2COLOR(color,surface->format) );
|
185
|
-
return Qnil;
|
186
|
-
}
|
187
|
-
static VALUE sdl_drawEllipseAlpha(VALUE obj,VALUE x,VALUE y,VALUE rx,VALUE ry,
|
188
|
-
VALUE color,VALUE alpha)
|
189
|
-
{
|
190
|
-
SDL_Surface *surface;
|
191
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
192
|
-
sge_EllipseAlpha( surface,NUM2INT(x),NUM2INT(y),NUM2INT(rx),NUM2INT(ry),
|
193
|
-
VALUE2COLOR(color,surface->format),NUM2UINT(alpha) );
|
194
|
-
return Qnil;
|
195
|
-
}
|
196
|
-
static VALUE sdl_drawAAEllipseAlpha(VALUE obj,VALUE x,VALUE y,VALUE rx,VALUE ry,
|
197
|
-
VALUE color,VALUE alpha)
|
198
|
-
{
|
199
|
-
SDL_Surface *surface;
|
200
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
201
|
-
sge_AAEllipseAlpha( surface,NUM2INT(x),NUM2INT(y),NUM2INT(rx),NUM2INT(ry),
|
202
|
-
VALUE2COLOR(color,surface->format),NUM2UINT(alpha) );
|
203
|
-
return Qnil;
|
204
|
-
}
|
205
|
-
static VALUE sdl_drawFilledEllipse(VALUE obj,VALUE x,VALUE y,VALUE rx,VALUE ry,
|
206
|
-
VALUE color)
|
207
|
-
{
|
208
|
-
SDL_Surface *surface;
|
209
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
210
|
-
sge_FilledEllipse( surface,NUM2INT(x),NUM2INT(y),NUM2INT(rx),NUM2INT(ry),
|
211
|
-
VALUE2COLOR(color,surface->format) );
|
212
|
-
return Qnil;
|
213
|
-
}
|
214
|
-
static VALUE sdl_drawAAFilledEllipse(VALUE obj,VALUE x,VALUE y,VALUE rx,VALUE ry,
|
215
|
-
VALUE color)
|
216
|
-
{
|
217
|
-
SDL_Surface *surface;
|
218
|
-
Data_Get_Struct(obj,SDL_Surface,surface);
|
219
|
-
sge_AAFilledEllipse( surface,NUM2INT(x),NUM2INT(y),NUM2INT(rx),NUM2INT(ry),
|
220
|
-
VALUE2COLOR(color,surface->format) );
|
39
|
+
rb_secure(4);
|
40
|
+
sge_Lock_ON();
|
221
41
|
return Qnil;
|
222
42
|
}
|
223
|
-
|
224
|
-
|
43
|
+
|
44
|
+
static VALUE Surface_s_autoLockOFF(VALUE klass)
|
225
45
|
{
|
226
|
-
|
227
|
-
|
228
|
-
sge_FilledEllipseAlpha( surface,NUM2INT(x),NUM2INT(y),NUM2INT(rx),NUM2INT(ry),
|
229
|
-
VALUE2COLOR(color,surface->format),NUM2UINT(alpha) );
|
46
|
+
rb_secure(4);
|
47
|
+
sge_Lock_OFF();
|
230
48
|
return Qnil;
|
231
49
|
}
|
232
50
|
|
233
|
-
static VALUE
|
234
|
-
VALUE x3,VALUE y3,VALUE x4,VALUE y4,
|
235
|
-
VALUE level,VALUE color)
|
51
|
+
static VALUE Surface_drawLine(int argc, VALUE* argv, VALUE self)
|
236
52
|
{
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
53
|
+
VALUE x1_, y1_, x2_, y2_, color_, aa_, alpha_;
|
54
|
+
Sint16 x1, y1, x2, y2;
|
55
|
+
Uint32 color;
|
56
|
+
SDL_Surface* surface;
|
57
|
+
|
58
|
+
rb_secure(4);
|
59
|
+
rb_scan_args(argc, argv, "52", &x1_, &y1_, &x2_, &y2_, &color_, &aa_, &alpha_);
|
60
|
+
surface = Get_SDL_Surface(self);
|
61
|
+
|
62
|
+
x1 = NUM2INT(x1_); y1 = NUM2INT(y1_);
|
63
|
+
x2 = NUM2INT(x2_); y2 = NUM2INT(y2_);
|
64
|
+
color = VALUE2COLOR(color_, surface->format);
|
65
|
+
|
66
|
+
if(RTEST(aa_) && RTEST(alpha_))
|
67
|
+
sge_AALineAlpha(surface, x1, y1, x2, y2, color, NUM2UINT(alpha_));
|
68
|
+
|
69
|
+
if(RTEST(aa_) && !RTEST(alpha_))
|
70
|
+
sge_AALine(surface, x1, y1, x2, y2, color);
|
71
|
+
|
72
|
+
if(!RTEST(aa_) && RTEST(alpha_))
|
73
|
+
sge_LineAlpha(surface, x1, y1, x2, y2, color, NUM2UINT(alpha_));
|
74
|
+
|
75
|
+
if(!RTEST(aa_) && !RTEST(alpha_))
|
76
|
+
sge_Line(surface, x1, y1, x2, y2, color);
|
77
|
+
|
242
78
|
return Qnil;
|
243
79
|
}
|
244
80
|
|
245
|
-
static VALUE
|
246
|
-
VALUE x3,VALUE y3,VALUE x4,VALUE y4,
|
247
|
-
VALUE level,VALUE color,VALUE alpha)
|
81
|
+
static VALUE Surface_drawRect(int argc, VALUE* argv, VALUE self)
|
248
82
|
{
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
83
|
+
VALUE x_, y_, w_, h_, color_, fill_, alpha_;
|
84
|
+
Sint16 x1, y1, x2, y2;
|
85
|
+
Uint32 color;
|
86
|
+
SDL_Surface* surface;
|
87
|
+
|
88
|
+
rb_scan_args(argc, argv, "52", &x_, &y_, &w_, &h_, &color_, &fill_, &alpha_);
|
89
|
+
|
90
|
+
surface = Get_SDL_Surface(self);
|
91
|
+
x1 = NUM2INT(x_); y1 = NUM2INT(y_);
|
92
|
+
x2 = x1 + NUM2INT(w_); y2 = y1 + NUM2INT(h_);
|
93
|
+
color = VALUE2COLOR(color_, surface->format);
|
94
|
+
|
95
|
+
if(RTEST(fill_) && RTEST(alpha_))
|
96
|
+
sge_FilledRectAlpha(surface, x1, y1, x2, y2, color, NUM2UINT(alpha_));
|
97
|
+
|
98
|
+
if(RTEST(fill_) && !RTEST(alpha_))
|
99
|
+
sge_FilledRect(surface, x1, y1, x2, y2, color);
|
100
|
+
|
101
|
+
if(!RTEST(fill_) && RTEST(alpha_))
|
102
|
+
sge_RectAlpha(surface, x1, y1, x2, y2, color, NUM2UINT(alpha_));
|
103
|
+
|
104
|
+
if(!RTEST(fill_) && !RTEST(alpha_))
|
105
|
+
sge_Rect(surface, x1, y1, x2, y2, color);
|
106
|
+
|
255
107
|
return Qnil;
|
256
108
|
}
|
257
109
|
|
258
|
-
static VALUE
|
259
|
-
VALUE x3,VALUE y3,VALUE x4,VALUE y4,
|
260
|
-
VALUE level,VALUE color)
|
110
|
+
static VALUE Surface_drawCircle(int argc, VALUE* argv, VALUE self)
|
261
111
|
{
|
262
|
-
SDL_Surface
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
112
|
+
SDL_Surface* surface;
|
113
|
+
VALUE x_, y_, r_, color_, fill_, aa_, alpha_;
|
114
|
+
Sint16 x, y, r;
|
115
|
+
Uint32 color;
|
116
|
+
|
117
|
+
rb_secure(4);
|
118
|
+
rb_scan_args(argc, argv, "43", &x_, &y_, &r_, &color_, &fill_, &aa_, &alpha_);
|
119
|
+
|
120
|
+
surface = Get_SDL_Surface(self);
|
121
|
+
x = NUM2INT(x_);
|
122
|
+
y = NUM2INT(y_);
|
123
|
+
r = NUM2INT(r_);
|
124
|
+
color = VALUE2COLOR(color_, surface->format);
|
125
|
+
|
126
|
+
if(RTEST(fill_) && RTEST(aa_) && RTEST(alpha_))
|
127
|
+
rb_raise(eSDLError, "can't draw filled antialiased alpha circle");
|
128
|
+
|
129
|
+
if(RTEST(fill_) && RTEST(aa_) && !RTEST(alpha_))
|
130
|
+
sge_AAFilledCircle(surface, x, y, r, color);
|
131
|
+
|
132
|
+
if(RTEST(fill_) && !RTEST(aa_) && RTEST(alpha_))
|
133
|
+
sge_FilledCircleAlpha(surface, x, y, r, color, NUM2UINT(alpha_));
|
134
|
+
|
135
|
+
if(RTEST(fill_) && !RTEST(aa_) && !RTEST(alpha_))
|
136
|
+
sge_FilledCircle(surface, x, y, r, color);
|
137
|
+
|
138
|
+
|
139
|
+
if(!RTEST(fill_) && RTEST(aa_) && RTEST(alpha_))
|
140
|
+
sge_AACircleAlpha(surface, x, y, r, color, NUM2UINT(alpha_));
|
141
|
+
|
142
|
+
if(!RTEST(fill_) && RTEST(aa_) && !RTEST(alpha_))
|
143
|
+
sge_AACircle(surface, x, y, r, color);
|
144
|
+
|
145
|
+
if(!RTEST(fill_) && !RTEST(aa_) && RTEST(alpha_))
|
146
|
+
sge_CircleAlpha(surface, x, y, r, color, NUM2UINT(alpha_));
|
147
|
+
|
148
|
+
if(!RTEST(fill_) && !RTEST(aa_) && !RTEST(alpha_))
|
149
|
+
sge_Circle(surface, x, y, r, color);
|
150
|
+
|
267
151
|
return Qnil;
|
268
152
|
}
|
269
153
|
|
270
|
-
static VALUE
|
271
|
-
VALUE x3,VALUE y3,VALUE x4,VALUE y4,
|
272
|
-
VALUE level,VALUE color,VALUE alpha)
|
154
|
+
static VALUE Surface_drawEllipse(int argc, VALUE* argv, VALUE self)
|
273
155
|
{
|
274
|
-
SDL_Surface
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
156
|
+
SDL_Surface* surface;
|
157
|
+
VALUE x_, y_, rx_, ry_, color_, fill_, aa_, alpha_;
|
158
|
+
Sint16 x, y, rx, ry;
|
159
|
+
Uint32 color;
|
160
|
+
|
161
|
+
rb_secure(4);
|
162
|
+
rb_scan_args(argc, argv, "53", &x_, &y_, &rx_, &ry_, &color_,
|
163
|
+
&fill_, &aa_, &alpha_);
|
164
|
+
|
165
|
+
surface = Get_SDL_Surface(self);
|
166
|
+
x = NUM2INT(x_);
|
167
|
+
y = NUM2INT(y_);
|
168
|
+
rx = NUM2INT(rx_);
|
169
|
+
ry = NUM2INT(ry_);
|
170
|
+
color = VALUE2COLOR(color_, surface->format);
|
171
|
+
|
172
|
+
if(RTEST(fill_) && RTEST(aa_) && RTEST(alpha_))
|
173
|
+
rb_raise(eSDLError, "can't draw filled antialiased alpha ellipse");
|
174
|
+
|
175
|
+
if(RTEST(fill_) && RTEST(aa_) && !RTEST(alpha_))
|
176
|
+
sge_AAFilledEllipse(surface, x, y, rx, ry, color);
|
177
|
+
|
178
|
+
if(RTEST(fill_) && !RTEST(aa_) && RTEST(alpha_))
|
179
|
+
sge_FilledEllipseAlpha(surface, x, y, rx, ry, color, NUM2UINT(alpha_));
|
180
|
+
|
181
|
+
if(RTEST(fill_) && !RTEST(aa_) && !RTEST(alpha_))
|
182
|
+
sge_FilledEllipse(surface, x, y, rx, ry, color);
|
183
|
+
|
184
|
+
if(!RTEST(fill_) && RTEST(aa_) && RTEST(alpha_))
|
185
|
+
sge_AAEllipseAlpha(surface, x, y, rx, ry, color, NUM2UINT(alpha_));
|
186
|
+
|
187
|
+
if(!RTEST(fill_) && RTEST(aa_) && !RTEST(alpha_))
|
188
|
+
sge_AAEllipse(surface, x, y, rx, ry, color);
|
189
|
+
|
190
|
+
if(!RTEST(fill_) && !RTEST(aa_) && RTEST(alpha_))
|
191
|
+
sge_EllipseAlpha(surface, x, y, rx, ry, color, NUM2UINT(alpha_));
|
192
|
+
|
193
|
+
if(!RTEST(fill_) && !RTEST(aa_) && !RTEST(alpha_))
|
194
|
+
sge_Ellipse(surface, x, y, rx, ry, color);
|
195
|
+
|
280
196
|
return Qnil;
|
281
197
|
}
|
282
198
|
|
283
|
-
static VALUE
|
199
|
+
static VALUE Surface_drawBezier(int argc, VALUE* argv, VALUE self)
|
284
200
|
{
|
285
|
-
SDL_Surface
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
201
|
+
SDL_Surface* surface;
|
202
|
+
VALUE coords_[8], level_, color_;
|
203
|
+
VALUE aa_, alpha_;
|
204
|
+
int coords[8];
|
205
|
+
Uint32 color;
|
206
|
+
int level;
|
207
|
+
int i;
|
208
|
+
|
209
|
+
rb_secure(4);
|
210
|
+
/* WARNING: ':' == '9' + 1
|
211
|
+
*/
|
212
|
+
rb_scan_args(argc, argv, ":2",
|
213
|
+
&coords_[0], &coords_[1],
|
214
|
+
&coords_[2], &coords_[3],
|
215
|
+
&coords_[4], &coords_[5],
|
216
|
+
&coords_[6], &coords_[7],
|
217
|
+
&level_, &color_,
|
218
|
+
&aa_, &alpha_);
|
219
|
+
surface = Get_SDL_Surface(self);
|
220
|
+
for (i=0; i<8; i++)
|
221
|
+
coords[i] = NUM2INT(coords_[i]);
|
222
|
+
color = VALUE2COLOR(color_, surface->format);
|
223
|
+
level = NUM2INT(level_);
|
224
|
+
|
225
|
+
if(RTEST(aa_) && RTEST(alpha_))
|
226
|
+
sge_AABezierAlpha(surface,
|
227
|
+
coords[0], coords[1],
|
228
|
+
coords[2], coords[3],
|
229
|
+
coords[4], coords[5],
|
230
|
+
coords[6], coords[7],
|
231
|
+
level, color, NUM2UINT(alpha_));
|
232
|
+
if(!RTEST(aa_) && RTEST(alpha_))
|
233
|
+
sge_BezierAlpha(surface,
|
234
|
+
coords[0], coords[1],
|
235
|
+
coords[2], coords[3],
|
236
|
+
coords[4], coords[5],
|
237
|
+
coords[6], coords[7],
|
238
|
+
level, color, NUM2UINT(alpha_));
|
239
|
+
if(RTEST(aa_) && !RTEST(alpha_))
|
240
|
+
sge_AABezier(surface,
|
241
|
+
coords[0], coords[1],
|
242
|
+
coords[2], coords[3],
|
243
|
+
coords[4], coords[5],
|
244
|
+
coords[6], coords[7],
|
245
|
+
level, color);
|
246
|
+
if(!RTEST(aa_) && !RTEST(alpha_))
|
247
|
+
sge_Bezier(surface,
|
248
|
+
coords[0], coords[1],
|
249
|
+
coords[2], coords[3],
|
250
|
+
coords[4], coords[5],
|
251
|
+
coords[6], coords[7],
|
252
|
+
level, color);
|
305
253
|
return Qnil;
|
306
254
|
}
|
307
|
-
static VALUE sdl_rotateScaledBlit(VALUE mod,VALUE src,VALUE dst,VALUE x,
|
308
|
-
VALUE y,VALUE angle,VALUE scale)
|
309
|
-
{
|
310
|
-
SDL_Surface *srcSurface,*dstSurface,*tmpSurface;
|
311
|
-
SDL_Rect destRect;
|
312
|
-
Uint32 colorkey;
|
313
|
-
Uint32 flags;
|
314
|
-
int result;
|
315
255
|
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
tmpSurface = sge_rotate_scaled_surface(srcSurface,NUM2INT(angle),
|
323
|
-
NUM2DBL(scale),colorkey);
|
324
|
-
if( tmpSurface==NULL )
|
325
|
-
rb_raise(eSDLError,"SDL memory allocate failed :%s",SDL_GetError());
|
326
|
-
SDL_SetColorKey(tmpSurface,flags,colorkey);
|
327
|
-
destRect.x=NUM2INT(x)-tmpSurface->h/2;
|
328
|
-
destRect.y=NUM2INT(y)-tmpSurface->w/2;
|
329
|
-
result = SDL_BlitSurface(tmpSurface,NULL,dstSurface,&destRect);
|
330
|
-
SDL_FreeSurface(tmpSurface);
|
331
|
-
if( result == -1 ){
|
332
|
-
rb_raise(eSDLError,"SDL_BlitSurface fail: %s",SDL_GetError());
|
333
|
-
}
|
334
|
-
return INT2NUM(result);
|
335
|
-
}
|
336
|
-
|
337
|
-
static VALUE sdl_transform(VALUE mod,VALUE src,VALUE dst,VALUE angle,
|
338
|
-
VALUE xscale,VALUE yscale,VALUE px,VALUE py,
|
339
|
-
VALUE qx,VALUE qy,VALUE flags)
|
256
|
+
static VALUE Surface_s_transformDraw(VALUE klass, VALUE src, VALUE dst,
|
257
|
+
VALUE angle,
|
258
|
+
VALUE xscale, VALUE yscale,
|
259
|
+
VALUE px, VALUE py,
|
260
|
+
VALUE qx, VALUE qy,
|
261
|
+
VALUE flags)
|
340
262
|
{
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
sge_transform(srcSurface,dstSurface,NUM2DBL(angle),NUM2DBL(xscale),
|
347
|
-
NUM2DBL(yscale),NUM2INT(px),NUM2INT(py),NUM2INT(qx),
|
348
|
-
NUM2INT(qy),NUM2UINT(flags));
|
263
|
+
rb_secure(4);
|
264
|
+
sge_transform(Get_SDL_Surface(src), Get_SDL_Surface(dst),
|
265
|
+
NUM2DBL(angle), NUM2DBL(xscale), NUM2DBL(yscale),
|
266
|
+
NUM2INT(px), NUM2INT(py), NUM2INT(qx), NUM2INT(qy),
|
267
|
+
NUM2UINT(flags));
|
349
268
|
return Qnil;
|
350
269
|
}
|
351
270
|
|
352
|
-
static VALUE
|
353
|
-
|
271
|
+
static VALUE Surface_transform(VALUE self, VALUE bgcolor, VALUE angle,
|
272
|
+
VALUE xscale, VALUE yscale, VALUE flags)
|
354
273
|
{
|
355
|
-
SDL_Surface *surface
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
274
|
+
SDL_Surface *surface, *result;
|
275
|
+
|
276
|
+
rb_secure(4);
|
277
|
+
surface = Get_SDL_Surface(self);
|
278
|
+
result = sge_transform_surface(surface, VALUE2COLOR(bgcolor, surface->format),
|
279
|
+
NUM2DBL(angle), NUM2DBL(xscale),
|
280
|
+
NUM2DBL(yscale), NUM2UINT(flags));
|
281
|
+
if(result == NULL)
|
282
|
+
rb_raise(eSDLError, "Couldn't Create Surface: %s", SDL_GetError());
|
283
|
+
return Surface_create(result);
|
363
284
|
}
|
364
285
|
|
365
|
-
static VALUE
|
286
|
+
static VALUE Surface_makeCollisionMap(VALUE self)
|
366
287
|
{
|
367
288
|
sge_cdata * cdata;
|
368
|
-
|
369
|
-
|
370
|
-
cdata
|
371
|
-
|
372
|
-
|
373
|
-
return Data_Wrap_Struct(cCollisionMap,0,sge_destroy_cmap,cdata);
|
289
|
+
rb_secure(4);
|
290
|
+
cdata = sge_make_cmap(Get_SDL_Surface(self));
|
291
|
+
if(cdata == NULL)
|
292
|
+
rb_raise(eSDLError, "Couldn't Create CollisionMap: %s", SDL_GetError());
|
293
|
+
return Data_Wrap_Struct(cCollisionMap, 0, sge_destroy_cmap, cdata);
|
374
294
|
}
|
375
295
|
|
376
|
-
static sge_cdata * value_to_collision_map(VALUE value)
|
377
|
-
{
|
378
|
-
sge_cdata * cdata;
|
379
|
-
if( !rb_obj_is_kind_of(value, cCollisionMap) )
|
380
|
-
rb_raise(rb_eArgError,"type mismatch(expect CollisionMap)");
|
381
|
-
Data_Get_Struct(value, sge_cdata, cdata);
|
382
|
-
return cdata;
|
383
|
-
}
|
384
296
|
|
385
|
-
static VALUE
|
386
|
-
|
387
|
-
|
297
|
+
static VALUE CollisionMap_s_boundingBoxCheck(VALUE klass,
|
298
|
+
VALUE x1, VALUE y1,
|
299
|
+
VALUE w1, VALUE h1,
|
300
|
+
VALUE x2, VALUE y2,
|
301
|
+
VALUE w2, VALUE h2)
|
388
302
|
{
|
389
|
-
return
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
303
|
+
return INT2BOOL(_sge_bbcheck
|
304
|
+
((Sint16) NUM2INT(x1), (Sint16) NUM2INT(y1),
|
305
|
+
(Sint16) NUM2INT(w1), (Sint16) NUM2INT(h1),
|
306
|
+
(Sint16) NUM2INT(x2), (Sint16) NUM2INT(y2),
|
307
|
+
(Sint16) NUM2INT(w2), (Sint16) NUM2INT(h2)));
|
394
308
|
}
|
395
309
|
|
396
|
-
static VALUE
|
397
|
-
|
310
|
+
static VALUE CollisionMap_collisionCheck(VALUE collisionMap1,
|
311
|
+
VALUE x1, VALUE y1,
|
312
|
+
VALUE collisionMap2,
|
313
|
+
VALUE x2, VALUE y2)
|
398
314
|
{
|
399
|
-
sge_cdata * cdata1 =
|
400
|
-
sge_cdata * cdata2 =
|
315
|
+
sge_cdata * cdata1 = Get_sge_cdata(collisionMap1);
|
316
|
+
sge_cdata * cdata2 = Get_sge_cdata(collisionMap2);
|
401
317
|
int collided;
|
402
318
|
collided = sge_cmcheck
|
403
|
-
(cdata1,
|
404
|
-
cdata2,
|
319
|
+
(cdata1, (Sint16) NUM2INT(x1), (Sint16) NUM2INT(y1),
|
320
|
+
cdata2, (Sint16) NUM2INT(x2), (Sint16) NUM2INT(y2));
|
405
321
|
if(!collided)
|
406
322
|
return Qnil;
|
407
|
-
return rb_ary_new3(2,
|
323
|
+
return rb_ary_new3(2, INT2NUM(sge_get_cx()), INT2NUM(sge_get_cy()));
|
408
324
|
}
|
409
325
|
|
410
|
-
static VALUE
|
411
|
-
|
326
|
+
static VALUE CollisionMap_boundingBoxCheck(VALUE collisionMap1,
|
327
|
+
VALUE x1, VALUE y1,
|
328
|
+
VALUE collisionMap2,
|
329
|
+
VALUE x2, VALUE y2)
|
412
330
|
{
|
413
|
-
sge_cdata * cdata1 =
|
414
|
-
sge_cdata * cdata2 =
|
415
|
-
return
|
416
|
-
|
417
|
-
|
331
|
+
sge_cdata * cdata1 = Get_sge_cdata(collisionMap1);
|
332
|
+
sge_cdata * cdata2 = Get_sge_cdata(collisionMap2);
|
333
|
+
return INT2BOOL(sge_bbcheck
|
334
|
+
(cdata1, (Sint16) NUM2INT(x1), (Sint16) NUM2INT(y1),
|
335
|
+
cdata2, (Sint16) NUM2INT(x2), (Sint16) NUM2INT(y2)));
|
418
336
|
}
|
419
337
|
|
420
|
-
static VALUE
|
338
|
+
static VALUE CollisionMap_set(VALUE self, VALUE vx, VALUE vy, VALUE vw, VALUE vh)
|
421
339
|
{
|
422
|
-
sge_cdata * cdata =
|
423
|
-
Sint16 x,
|
424
|
-
|
340
|
+
sge_cdata * cdata = Get_sge_cdata(self);
|
341
|
+
Sint16 x, y, w, h;
|
342
|
+
|
343
|
+
rb_secure(4);
|
425
344
|
x = NUM2INT(vx);
|
426
345
|
y = NUM2INT(vy);
|
427
346
|
w = NUM2INT(vw);
|
428
347
|
h = NUM2INT(vh);
|
429
348
|
if( x < 0 || y < 0 || x+w > cdata->w || y+h > cdata->h ){
|
430
|
-
rb_raise(eSDLError,"Couldn't
|
349
|
+
rb_raise(eSDLError, "Couldn't set that area");
|
431
350
|
}
|
432
|
-
sge_set_cdata(cdata,
|
351
|
+
sge_set_cdata(cdata, x, y, w, h);
|
433
352
|
return Qnil;
|
434
353
|
}
|
435
354
|
|
436
|
-
static VALUE
|
355
|
+
static VALUE CollisionMap_clear(VALUE self, VALUE vx, VALUE vy, VALUE vw, VALUE vh)
|
437
356
|
{
|
438
|
-
sge_cdata * cdata =
|
439
|
-
Sint16 x,
|
440
|
-
|
357
|
+
sge_cdata * cdata = Get_sge_cdata(self);
|
358
|
+
Sint16 x, y, w, h;
|
359
|
+
|
360
|
+
rb_secure(4);
|
441
361
|
x = NUM2INT(vx);
|
442
362
|
y = NUM2INT(vy);
|
443
363
|
w = NUM2INT(vw);
|
444
364
|
h = NUM2INT(vh);
|
445
365
|
if( x < 0 || y < 0 || x+w > cdata->w || y+h > cdata->h ){
|
446
|
-
rb_raise(eSDLError,"Couldn't clear that area");
|
366
|
+
rb_raise(eSDLError, "Couldn't clear that area");
|
447
367
|
}
|
448
|
-
sge_unset_cdata(cdata,
|
368
|
+
sge_unset_cdata(cdata, x, y, w, h);
|
449
369
|
return Qnil;
|
450
370
|
}
|
451
371
|
|
452
|
-
static VALUE
|
372
|
+
static VALUE CollisionMap_w(VALUE self)
|
453
373
|
{
|
454
|
-
|
455
|
-
return INT2FIX(cdata->w);
|
374
|
+
return INT2FIX(Get_sge_cdata(self)->w);
|
456
375
|
}
|
457
376
|
|
458
|
-
static VALUE
|
377
|
+
static VALUE CollisionMap_h(VALUE self)
|
459
378
|
{
|
460
|
-
|
461
|
-
return INT2FIX(cdata->h);
|
379
|
+
return INT2FIX(Get_sge_cdata(self)->h);
|
462
380
|
}
|
463
381
|
|
464
382
|
/* bitmap font */
|
465
|
-
static void
|
383
|
+
static void bf_close(sge_bmpFont* font)
|
466
384
|
{
|
467
385
|
if(!rubysdl_is_quit()){
|
468
386
|
sge_BF_CloseFont(font);
|
469
387
|
}
|
470
388
|
}
|
471
389
|
|
472
|
-
static VALUE
|
390
|
+
static VALUE BMFont_open(VALUE klass, VALUE file, VALUE flags)
|
391
|
+
|
473
392
|
{
|
474
393
|
sge_bmpFont* font;
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
394
|
+
rb_secure(4);
|
395
|
+
SafeStringValue(file);
|
396
|
+
|
397
|
+
font = sge_BF_OpenFont(RSTRING_PTR(file), NUM2UINT(flags));
|
398
|
+
if(font == NULL)
|
399
|
+
rb_raise(eSDLError, "Couldn't open font: %s", RSTRING_PTR(file));
|
479
400
|
|
480
|
-
return Data_Wrap_Struct(cBMFont,0,
|
401
|
+
return Data_Wrap_Struct(cBMFont, 0, bf_close, font);
|
481
402
|
}
|
482
403
|
|
483
|
-
static VALUE
|
404
|
+
static VALUE BMFont_setColor(VALUE self, VALUE r, VALUE g, VALUE b)
|
484
405
|
{
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
sge_BF_SetColor(font,NUM2UINT(r),NUM2UINT(g),NUM2UINT(b));
|
406
|
+
sge_BF_SetColor(Get_sge_bmpFont(self),
|
407
|
+
NUM2UINT(r), NUM2UINT(g), NUM2UINT(b));
|
489
408
|
return Qnil;
|
490
409
|
}
|
491
410
|
|
492
|
-
static VALUE
|
411
|
+
static VALUE BMFont_getHeight(VALUE self)
|
493
412
|
{
|
494
|
-
|
495
|
-
Data_Get_Struct(obj,sge_bmpFont,font);
|
496
|
-
return INT2FIX(sge_BF_GetHeight(font));
|
413
|
+
return INT2FIX(sge_BF_GetHeight(Get_sge_bmpFont(self)));
|
497
414
|
}
|
498
415
|
|
499
|
-
static VALUE
|
416
|
+
static VALUE BMFont_getWidth(VALUE self)
|
500
417
|
{
|
501
|
-
|
502
|
-
Data_Get_Struct(obj,sge_bmpFont,font);
|
503
|
-
return INT2FIX(sge_BF_GetWidth(font));
|
418
|
+
return INT2FIX(sge_BF_GetWidth(Get_sge_bmpFont(self)));
|
504
419
|
}
|
505
420
|
|
506
|
-
static VALUE
|
421
|
+
static VALUE BMFont_textSize(VALUE self, VALUE text)
|
507
422
|
{
|
508
|
-
sge_bmpFont* font;
|
509
423
|
SDL_Rect rect;
|
510
|
-
|
511
|
-
rect = sge_BF_TextSize(
|
424
|
+
StringValue(text);
|
425
|
+
rect = sge_BF_TextSize(Get_sge_bmpFont(self),
|
426
|
+
RSTRING_PTR(text));
|
512
427
|
return rb_ary_new3(2, INT2FIX(rect.w), INT2FIX(rect.h));
|
513
428
|
}
|
514
429
|
|
515
|
-
static VALUE
|
516
|
-
VALUE
|
430
|
+
static VALUE BMFont_textout(VALUE self,
|
431
|
+
VALUE surface, VALUE string,
|
432
|
+
VALUE x, VALUE y)
|
433
|
+
|
517
434
|
{
|
518
|
-
|
519
|
-
|
435
|
+
rb_secure(4);
|
436
|
+
StringValue(string);
|
520
437
|
|
521
|
-
|
522
|
-
|
523
|
-
Data_Get_Struct(obj,sge_bmpFont,font);
|
524
|
-
Data_Get_Struct(surface,SDL_Surface,target);
|
525
|
-
sge_BF_textout(target,font,GETCSTR(string),NUM2INT(x),NUM2INT(y));
|
438
|
+
sge_BF_textout(Get_SDL_Surface(surface), Get_sge_bmpFont(self),
|
439
|
+
RSTRING_PTR(string), NUM2INT(x), NUM2INT(y));
|
526
440
|
return Qnil;
|
527
441
|
}
|
528
442
|
|
529
|
-
|
530
|
-
{
|
531
|
-
rb_define_const(mSDL,"TRANSFORM_AA",UINT2NUM(SGE_TAA));
|
532
|
-
rb_define_const(mSDL,"TRANSFORM_SAFE",UINT2NUM(SGE_TSAFE));
|
533
|
-
rb_define_const(mSDL,"TRANSFORM_TMAP",UINT2NUM(SGE_TTMAP));
|
534
|
-
|
535
|
-
rb_define_const(cBMFont,"TRANSPARENT",UINT2NUM(SGE_BFTRANSP));
|
536
|
-
rb_define_const(cBMFont,"NOCONVERT",UINT2NUM(SGE_BFNOCONVERT));
|
537
|
-
rb_define_const(cBMFont,"SFONT",UINT2NUM(SGE_BFSFONT));
|
538
|
-
rb_define_const(cBMFont,"PALETTE",UINT2NUM(SGE_BFPALETTE));
|
539
|
-
}
|
540
|
-
|
541
|
-
void init_sge_video()
|
443
|
+
void rubysdl_init_sge(VALUE mSDL, VALUE cSurface)
|
542
444
|
{
|
543
445
|
sge_Update_OFF();
|
544
446
|
sge_Lock_ON();
|
545
|
-
|
546
|
-
rb_define_module_function(
|
547
|
-
rb_define_module_function(
|
548
|
-
|
549
|
-
rb_define_method(cSurface,"getPixel",sdl_getPixel,2);
|
550
|
-
rb_define_method(cSurface,"putPixel",sdl_putPixel,3);
|
551
|
-
rb_define_method(cSurface,"[]",sdl_getPixel,2);
|
552
|
-
rb_define_method(cSurface,"[]=",sdl_putPixel,3);
|
447
|
+
|
448
|
+
rb_define_module_function(cSurface, "autoLock?", Surface_s_autoLock_p, 0);
|
449
|
+
rb_define_module_function(cSurface, "autoLockON", Surface_s_autoLockON, 0);
|
450
|
+
rb_define_module_function(cSurface, "autoLockOFF", Surface_s_autoLockOFF, 0);
|
553
451
|
|
554
452
|
/* primitive drawing */
|
555
|
-
rb_define_method(cSurface,"drawLine",
|
556
|
-
rb_define_method(cSurface,"drawRect",
|
557
|
-
rb_define_method(cSurface,"drawCircle",
|
558
|
-
rb_define_method(cSurface,"
|
559
|
-
rb_define_method(cSurface,"
|
560
|
-
rb_define_method(cSurface,"drawFilledEllispe",sdl_drawFilledEllipse,5);
|
561
|
-
rb_define_method(cSurface,"drawEllipse",sdl_drawEllipse,5);
|
562
|
-
rb_define_method(cSurface,"drawFilledEllipse",sdl_drawFilledEllipse,5);
|
563
|
-
rb_define_method(cSurface,"drawBezier",sdl_drawBezier,10);
|
564
|
-
|
565
|
-
/* antialiased primitive drawing */
|
566
|
-
rb_define_method(cSurface,"drawAALine",sdl_drawAALine,5);
|
567
|
-
rb_define_method(cSurface,"drawAACircle",sdl_drawAACircle,4);
|
568
|
-
rb_define_method(cSurface,"drawAAFilledCircle",sdl_drawAAFilledCircle,4);
|
569
|
-
rb_define_method(cSurface,"drawAAEllipse",sdl_drawAAEllipse,5);
|
570
|
-
rb_define_method(cSurface,"drawAAFilledEllipse",sdl_drawAAFilledEllipse,5);
|
571
|
-
rb_define_method(cSurface,"drawAABezier",sdl_drawAABezier,10);
|
572
|
-
|
573
|
-
/* primitive drawing with alpha */
|
574
|
-
rb_define_method(cSurface,"drawLineAlpha",sdl_drawLineAlpha,6);
|
575
|
-
rb_define_method(cSurface,"drawRectAlpha",sdl_drawRectAlpha,6);
|
576
|
-
rb_define_method(cSurface,"drawFilledRectAlpha",sdl_drawFilledRectAlpha,6);
|
577
|
-
rb_define_method(cSurface,"drawCircleAlpha",sdl_drawCircleAlpha,5);
|
578
|
-
rb_define_method(cSurface,"drawFilledCircleAlpha",sdl_drawFilledCircleAlpha,5);
|
579
|
-
rb_define_method(cSurface,"drawEllipseAlpha",sdl_drawEllipseAlpha,6);
|
580
|
-
rb_define_method(cSurface,"drawFilledEllipseAlpha",sdl_drawFilledEllipseAlpha,6);
|
581
|
-
rb_define_method(cSurface,"drawBezierAlpha",sdl_drawBezierAlpha,11);
|
582
|
-
|
583
|
-
/* antialiased primitive drawing with alpha */
|
584
|
-
rb_define_method(cSurface,"drawAALineAlpha",sdl_drawAALineAlpha,6);
|
585
|
-
rb_define_method(cSurface,"drawAACircleAlpha",sdl_drawAACircleAlpha,5);
|
586
|
-
rb_define_method(cSurface,"drawAAEllipseAlpha",sdl_drawAAEllipseAlpha,6);
|
587
|
-
rb_define_method(cSurface,"drawAABezierAlpha",sdl_drawAABezierAlpha,11);
|
588
|
-
|
589
|
-
/* rotation and scaling */
|
590
|
-
rb_define_method(cSurface,"rotateScaledSurface",sdl_rotateScaledSurface,3);
|
591
|
-
rb_define_module_function(mSDL,"rotateScaledBlit",sdl_rotateScaledBlit,6);
|
592
|
-
rb_define_module_function(mSDL,"rotateXYScaled",sdl_rotateXYScaled,7);
|
453
|
+
rb_define_method(cSurface, "drawLine", Surface_drawLine, -1);
|
454
|
+
rb_define_method(cSurface, "drawRect", Surface_drawRect, -1);
|
455
|
+
rb_define_method(cSurface, "drawCircle", Surface_drawCircle, -1);
|
456
|
+
rb_define_method(cSurface, "drawEllipse", Surface_drawEllipse, -1);
|
457
|
+
rb_define_method(cSurface, "drawBezier", Surface_drawBezier, -1);
|
593
458
|
|
594
|
-
|
595
|
-
|
459
|
+
/* rotation and scaling */
|
460
|
+
rb_define_module_function(cSurface, "transformDraw",
|
461
|
+
Surface_s_transformDraw, 10);
|
462
|
+
rb_define_method(cSurface, "transformSurface", Surface_transform, 5);
|
596
463
|
|
597
464
|
/* collision detection */
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
rb_define_method(cCollisionMap,"
|
605
|
-
|
606
|
-
rb_define_method(cCollisionMap,"
|
607
|
-
|
608
|
-
rb_define_method(cCollisionMap,"
|
465
|
+
cCollisionMap = rb_define_class_under(mSDL, "CollisionMap", rb_cObject);
|
466
|
+
rb_undef_alloc_func(cCollisionMap);
|
467
|
+
|
468
|
+
rb_define_method(cSurface, "makeCollisionMap", Surface_makeCollisionMap, 0);
|
469
|
+
rb_define_singleton_method(cCollisionMap, "boundingBoxCheck",
|
470
|
+
CollisionMap_s_boundingBoxCheck, 8);
|
471
|
+
rb_define_method(cCollisionMap, "collisionCheck",
|
472
|
+
CollisionMap_collisionCheck, 5);
|
473
|
+
rb_define_method(cCollisionMap, "boundingBoxCheck",
|
474
|
+
CollisionMap_boundingBoxCheck, 5);
|
475
|
+
rb_define_method(cCollisionMap, "clear", CollisionMap_clear, 4);
|
476
|
+
rb_define_method(cCollisionMap, "set", CollisionMap_set, 4);
|
477
|
+
rb_define_method(cCollisionMap, "w", CollisionMap_w, 0);
|
478
|
+
rb_define_method(cCollisionMap, "h", CollisionMap_h, 0);
|
479
|
+
|
609
480
|
|
610
481
|
/* bitmap font */
|
611
|
-
cBMFont = rb_define_class_under(mSDL,"BMFont",rb_cObject);
|
612
|
-
|
482
|
+
cBMFont = rb_define_class_under(mSDL, "BMFont", rb_cObject);
|
483
|
+
rb_undef_alloc_func(cBMFont);
|
484
|
+
|
485
|
+
rb_define_singleton_method(cBMFont, "open", BMFont_open, 2);
|
486
|
+
|
487
|
+
rb_define_method(cBMFont, "setColor", BMFont_setColor, 3);
|
488
|
+
rb_define_method(cBMFont, "height", BMFont_getHeight, 0);
|
489
|
+
rb_define_method(cBMFont, "width", BMFont_getWidth, 0);
|
490
|
+
rb_define_method(cBMFont, "textSize", BMFont_textSize,1);
|
491
|
+
rb_define_method(cBMFont, "textout", BMFont_textout, 4);
|
613
492
|
|
614
|
-
rb_define_method(cBMFont,"setColor",sdl_bf_setColor,3);
|
615
|
-
rb_define_method(cBMFont,"height",sdl_bf_getHeight,0);
|
616
|
-
rb_define_method(cBMFont,"width",sdl_bf_getWidth,0);
|
617
|
-
rb_define_method(cBMFont,"textSize",sdl_bf_textSize, 1);
|
618
|
-
rb_define_method(cBMFont,"textout",sdl_bf_textout,4);
|
619
493
|
|
620
|
-
|
494
|
+
rb_define_const(cSurface, "TRANSFORM_AA", UINT2NUM(SGE_TAA));
|
495
|
+
rb_define_const(cSurface, "TRANSFORM_SAFE", UINT2NUM(SGE_TSAFE));
|
496
|
+
rb_define_const(cSurface, "TRANSFORM_TMAP", UINT2NUM(SGE_TTMAP));
|
497
|
+
|
498
|
+
rb_define_const(cBMFont, "TRANSPARENT", UINT2NUM(SGE_BFTRANSP));
|
499
|
+
rb_define_const(cBMFont, "NOCONVERT", UINT2NUM(SGE_BFNOCONVERT));
|
500
|
+
rb_define_const(cBMFont, "SFONT", UINT2NUM(SGE_BFSFONT));
|
501
|
+
rb_define_const(cBMFont, "PALETTE", UINT2NUM(SGE_BFPALETTE));
|
502
|
+
}
|
503
|
+
#else /* HAVE_SGE */
|
504
|
+
#include "rubysdl.h"
|
505
|
+
void rubysdl_init_sge(VALUE mSDL, VALUE cSurface)
|
506
|
+
{
|
621
507
|
}
|
622
508
|
#endif /* HAVE_SGE */
|