rubysdl 1.3.1 → 2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 */
|