rubysdl 2.0.1 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/NEWS.en +36 -0
- data/NEWS.ja +36 -0
- data/README.en +1 -1
- data/README.ja +1 -1
- data/doc-en/Makefile +1 -1
- data/doc-en/cdrom.rsd +31 -0
- data/doc-en/event.rsd +6 -2
- data/doc-en/font.rsd +141 -4
- data/doc-en/general.rsd +14 -0
- data/doc-en/init.rsd +3 -3
- data/doc-en/mixer.rsd +68 -0
- data/doc-en/mpeg.rsd +24 -0
- data/doc-en/sdlskk.rsd +5 -0
- data/doc-en/video.rsd +35 -0
- data/doc-en/wm.rsd +6 -0
- data/doc/cdrom.rsd +29 -0
- data/doc/event.rsd +5 -2
- data/doc/font.rsd +250 -4
- data/doc/general.rsd +12 -0
- data/doc/mixer.rsd +68 -0
- data/doc/mpeg.rsd +24 -0
- data/doc/sdlskk.rsd +5 -1
- data/doc/video.rsd +35 -0
- data/doc/wm.rsd +10 -0
- data/extconf.rb +9 -0
- data/lib/rubysdl_aliases.rb +9 -0
- data/lib/sdl.rb +19 -32
- data/rubysdl.h +37 -4
- data/rubysdl_cdrom.c +14 -1
- data/rubysdl_event.c +14 -0
- data/rubysdl_image.c +1 -1
- data/rubysdl_joystick.c +0 -1
- data/rubysdl_kanji.c +86 -11
- data/rubysdl_main.c +8 -1
- data/rubysdl_mixer.c +17 -4
- data/rubysdl_sdlskk.c +19 -0
- data/rubysdl_sge_video.c +44 -12
- data/rubysdl_smpeg.c +7 -2
- data/rubysdl_time.c +13 -1
- data/rubysdl_ttf.c +92 -13
- data/rubysdl_video.c +10 -4
- data/rubysdl_wm.c +9 -3
- data/sample/font.rb +1 -0
- data/sample/load_from_io.rb +2 -2
- data/sample/plaympeg.rb +1 -5
- metadata +3 -3
data/doc/general.rsd
CHANGED
@@ -50,6 +50,18 @@ Ruby/SDL
|
|
50
50
|
* ����¾�ˤ⡢((<Window�δ���|Window Management>))��
|
51
51
|
((<����Ƚ��>))�ʤ�
|
52
52
|
|
53
|
+
= Ruby 1.9��m17n�ˤĤ���
|
54
|
+
Ruby 1.9�Ǥϡ�String�˥����ǥ������դ���
|
55
|
+
���ޤ�����Ruby/SDL�Ǥϴ���Ū�ˤ��ξ����̵�뤷�ޤ���
|
56
|
+
SDL�Ǥ��Τ褦�ʾ����ɤ����٤����������Ƥ��ʤ�����Ǥ���
|
57
|
+
|
58
|
+
�����������Ĥ��Υ�åɤǤ�Ruby 1.9�ˤ����Ƥ�
|
59
|
+
�����ǥ�������Ѥ�����ղä�Ԥ��ޤ���
|
60
|
+
�ܤ����ϳƥ�åɤι�Ƥ���������
|
61
|
+
|
62
|
+
extconf.rb��¹Ԥ���Ȥ���--enable-m17n/--disable-m17n
|
63
|
+
���ץ�����Ȥ����Ȥǡ�������Ruby/SDL��
|
64
|
+
m17n��Ϣ�ε�ǽ��ͭ��/̵���ˤǤ��ޤ���
|
53
65
|
|
54
66
|
== SDL::Error
|
55
67
|
SDL��ͭ�Υ��顼��ɽ�魯�㳰���饹�Ǥ���StandardError��Ѿ����Ƥ��ޤ���
|
data/doc/mixer.rsd
CHANGED
@@ -226,6 +226,39 @@ OGG
|
|
226
226
|
|
227
227
|
EXCEPTION *
|
228
228
|
|
229
|
+
%%
|
230
|
+
NAME destroy
|
231
|
+
MOD Mixer::Wave
|
232
|
+
TYPE #
|
233
|
+
PURPOSE �����ǥ����ǡ�����������ޤ�
|
234
|
+
|
235
|
+
PROTO
|
236
|
+
destroy
|
237
|
+
|
238
|
+
DESC
|
239
|
+
�����ǥ����ǡ��������Ƥ����������������ޤ���
|
240
|
+
������ϰ��ڤ����Ǥ��ʤ��ʤ�ޤ���
|
241
|
+
|
242
|
+
SEEALSO
|
243
|
+
Mixer::Wave#destroyed?
|
244
|
+
|
245
|
+
%%
|
246
|
+
NAME destroyed?
|
247
|
+
MOD Mixer::Wave
|
248
|
+
TYPE #
|
249
|
+
PURPOSE �����ǥ����ǡ���������������ɤ������֤��ޤ���
|
250
|
+
RVAL true/false
|
251
|
+
|
252
|
+
PROTO
|
253
|
+
destroyed?
|
254
|
+
|
255
|
+
DESC
|
256
|
+
@[Mixer::Wave#destroy]�ˤ�ä�
|
257
|
+
�����ǥ����ǡ���������������ɤ������ͤ��֤��ޤ���
|
258
|
+
|
259
|
+
SEEALSO
|
260
|
+
Mixer::Wave#destroy
|
261
|
+
|
229
262
|
%%
|
230
263
|
NAME load
|
231
264
|
MOD Mixer::Music
|
@@ -269,6 +302,41 @@ Windows
|
|
269
302
|
|
270
303
|
EXCEPTION *
|
271
304
|
|
305
|
+
%%
|
306
|
+
NAME destroy
|
307
|
+
MOD Mixer::Music
|
308
|
+
TYPE #
|
309
|
+
PURPOSE ���ڥǡ�����������ޤ�
|
310
|
+
|
311
|
+
PROTO
|
312
|
+
destroy
|
313
|
+
|
314
|
+
DESC
|
315
|
+
���ڥǡ��������Ƥ����������������ޤ���
|
316
|
+
������ϰ��ڤ����Ǥ��ʤ��ʤ�ޤ���
|
317
|
+
|
318
|
+
SEEALSO
|
319
|
+
Mixer::Music#destroyed?
|
320
|
+
Mixer::Wave#destroy
|
321
|
+
|
322
|
+
%%
|
323
|
+
NAME destroyed?
|
324
|
+
MOD Mixer::Music
|
325
|
+
TYPE #
|
326
|
+
PURPOSE ���ڥǡ���������������ɤ������֤��ޤ���
|
327
|
+
RVAL true/false
|
328
|
+
|
329
|
+
PROTO
|
330
|
+
destroyed?
|
331
|
+
|
332
|
+
DESC
|
333
|
+
@[Mixer::Music#destroy]�ˤ�ä�
|
334
|
+
���ڥǡ���������������ɤ������ͤ��֤��ޤ���
|
335
|
+
|
336
|
+
SEEALSO
|
337
|
+
Mixer::Music#destroy
|
338
|
+
Mixer::Wave#destroyed?
|
339
|
+
|
272
340
|
%%
|
273
341
|
NAME set_volume
|
274
342
|
MOD Mixer::Wave
|
data/doc/mpeg.rsd
CHANGED
@@ -591,5 +591,29 @@ total_time
|
|
591
591
|
DESC
|
592
592
|
not documented yet
|
593
593
|
|
594
|
+
%%
|
595
|
+
NAME delete
|
596
|
+
MDO MPEG
|
597
|
+
TYPE #
|
598
|
+
DEP SMPEG
|
599
|
+
PURPOSE
|
600
|
+
|
601
|
+
PROTO
|
602
|
+
delete
|
603
|
+
|
604
|
+
DESC
|
605
|
+
not documented yet
|
594
606
|
|
607
|
+
%%
|
608
|
+
NAME deleted?
|
609
|
+
MDO MPEG
|
610
|
+
TYPE #
|
611
|
+
DEP SMPEG
|
612
|
+
PURPOSE
|
613
|
+
|
614
|
+
PROTO
|
615
|
+
deleted?
|
616
|
+
|
617
|
+
DESC
|
618
|
+
not documented yet
|
595
619
|
|
data/doc/sdlskk.rsd
CHANGED
@@ -387,6 +387,10 @@ str
|
|
387
387
|
DESC
|
388
388
|
���������ʸ������֤��ޤ���
|
389
389
|
|
390
|
+
NOTE
|
391
|
+
Ruby 1.9�Ǥ�Ruby/SDL��m17n��ǽ��ͭ���ˤ��Ƥ���¤ꡢ
|
392
|
+
�֤��ͤ�ʸ�����Ŭ�ڤʥ����ǥ����ղä��ޤ���
|
393
|
+
|
390
394
|
SEEALSO
|
391
395
|
SKK::Context#render_str
|
392
396
|
SKK::Context#clear
|
@@ -461,7 +465,7 @@ JISX0208
|
|
461
465
|
|
462
466
|
ʣ���Ԥ����Ϥ�¸���������硢@[SKK::Context] ��Ƥ֤�
|
463
467
|
�⡼�ɤ��������ϥ⡼�ɤ���äƤ��ޤ��Τ��Լ����Ǥ����硢
|
464
|
-
|
468
|
+
���δؿ���Ƥ֤Ȥ褤�Ǥ��礦��
|
465
469
|
|
466
470
|
�ޤ������åȥХåե������Ƥ���¸����ޤ���
|
467
471
|
|
data/doc/video.rsd
CHANGED
@@ -1277,6 +1277,41 @@ EXCEPTION *
|
|
1277
1277
|
SEEALSO
|
1278
1278
|
Surface.load_bmp
|
1279
1279
|
|
1280
|
+
%%
|
1281
|
+
NAME destroy
|
1282
|
+
MOD Surface
|
1283
|
+
TYPE #
|
1284
|
+
PURPOSE �����ե�����������ޤ���
|
1285
|
+
|
1286
|
+
PROTO
|
1287
|
+
destroy
|
1288
|
+
|
1289
|
+
DESC
|
1290
|
+
����Surface�����Ƥ���������������ޤ�������������ˤ�
|
1291
|
+
���Υ��֥������Ȥ��Ф������ϰ����Բ�ǽ�ˤʤ�ޤ���
|
1292
|
+
|
1293
|
+
SEEALSO
|
1294
|
+
Surface.new
|
1295
|
+
Surface.new_from
|
1296
|
+
Surface#destroyed?
|
1297
|
+
|
1298
|
+
%%
|
1299
|
+
NAME destroyed?
|
1300
|
+
MOD Surface
|
1301
|
+
TYPE #
|
1302
|
+
PURPOSE �����ե�������������Ƥ��뤫�ɤ������֤��ޤ���
|
1303
|
+
RVAL true/false
|
1304
|
+
|
1305
|
+
PROTO
|
1306
|
+
destroyed?
|
1307
|
+
|
1308
|
+
DESC
|
1309
|
+
���Υ����ե����� @[Surface#destroy] �ˤ�äƲ�������Ƥ��뤫
|
1310
|
+
�ɤ������ͤ��֤��ޤ���
|
1311
|
+
|
1312
|
+
SEEALSO
|
1313
|
+
Surface#destroy
|
1314
|
+
|
1280
1315
|
%%
|
1281
1316
|
NAME set_color_key
|
1282
1317
|
MOD Surface
|
data/doc/wm.rsd
CHANGED
@@ -24,6 +24,9 @@ caption
|
|
24
24
|
DESC
|
25
25
|
������ɥ��Υ����ȥ�ȥ�������̾��ʸ����2�Ĥ�������֤��ޤ���
|
26
26
|
|
27
|
+
NOTES
|
28
|
+
�֤��ͤΥ����ǥ���UTF8�Ǥ���
|
29
|
+
|
27
30
|
SEEALSO
|
28
31
|
WM.set_caption
|
29
32
|
|
@@ -40,6 +43,13 @@ setCaption(title, icon)
|
|
40
43
|
DESC
|
41
44
|
ɽ��������ɥ��Υ����ȥ�С��ȥ�������̾�åȤ��ޤ���
|
42
45
|
|
46
|
+
NOTES
|
47
|
+
Ruby 1.8�Ǥ�ʸ����Ȥ���UTF8��Ϳ���뤳�Ȥǥޥ���Х���ʸ����
|
48
|
+
���ѤǤ���Ķ��⤢��ޤ���
|
49
|
+
|
50
|
+
Ruby 1.9�Ǥ�Ruby/SDL��m17n��ǽ��ͭ���ˤ��Ƥ���¤�
|
51
|
+
Ruby��m17n�ε�ǽ���Ѥ�UTF8�ؤ��Ѵ���ưŪ�˹Ԥ��ޤ���
|
52
|
+
|
43
53
|
SEEALSO
|
44
54
|
WM.caption
|
45
55
|
WM.icon=
|
data/extconf.rb
CHANGED
@@ -65,6 +65,15 @@ have_func("TTF_FontFaceIsFixedWidth")
|
|
65
65
|
have_func("TTF_FontFaceFamilyName")
|
66
66
|
have_func("TTF_FontFaceStyleName")
|
67
67
|
have_func("Mix_LoadMUS_RW")
|
68
|
+
have_func("rb_thread_blocking_region")
|
69
|
+
if enable_config("m17n", true)
|
70
|
+
if have_func("rb_enc_str_new") && have_func("rb_str_export_to_enc")
|
71
|
+
$CFLAGS += " -D ENABLE_M17N "
|
72
|
+
if enable_config("m17n-filesystem", false)
|
73
|
+
$CFLAGS += " -D ENABLE_M17N_FILESYSTEM "
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
68
77
|
|
69
78
|
if have_library("SDLSKK","SDLSKK_Context_new") then
|
70
79
|
$CFLAGS+= " -D HAVE_SDLSKK "
|
data/lib/rubysdl_aliases.rb
CHANGED
@@ -106,6 +106,7 @@ module SDL
|
|
106
106
|
if defined?(Kanji) then
|
107
107
|
class Kanji
|
108
108
|
alias set_coding_system setCodingSystem
|
109
|
+
alias get_coding_system getCodingSystem
|
109
110
|
alias put_tate putTate
|
110
111
|
end
|
111
112
|
end
|
@@ -243,6 +244,14 @@ module SDL
|
|
243
244
|
alias render_solid_utf8 renderSolidUTF8
|
244
245
|
alias render_blended_utf8 renderBlendedUTF8
|
245
246
|
alias render_shaded_utf8 renderShadedUTF8
|
247
|
+
if method_defined?(:drawSolid)
|
248
|
+
alias draw_solid drawSolid
|
249
|
+
alias draw_blended drawBlended
|
250
|
+
alias draw_shaded drawShaded
|
251
|
+
alias render_solid renderSolid
|
252
|
+
alias render_blended renderBlended
|
253
|
+
alias render_shaded renderShaded
|
254
|
+
end
|
246
255
|
end
|
247
256
|
end
|
248
257
|
end
|
data/lib/sdl.rb
CHANGED
@@ -18,7 +18,7 @@ require 'sdl.so'
|
|
18
18
|
require 'forwardable'
|
19
19
|
|
20
20
|
module SDL
|
21
|
-
VERSION = "2.0
|
21
|
+
VERSION = "2.1.0"
|
22
22
|
|
23
23
|
class Surface
|
24
24
|
def put(surface,x,y)
|
@@ -175,40 +175,27 @@ module SDL
|
|
175
175
|
end
|
176
176
|
|
177
177
|
if defined?(MPEG)
|
178
|
-
class MPEG
|
179
|
-
alias info_imp info
|
180
|
-
private :info_imp
|
181
|
-
def info(*arg)
|
182
|
-
case arg.size
|
183
|
-
when 0
|
184
|
-
result = SDL::MPEG::Info.new
|
185
|
-
info_imp(result)
|
186
|
-
result
|
187
|
-
when 1
|
188
|
-
info_imp(arg[0])
|
189
|
-
arg[0]
|
190
|
-
end
|
191
|
-
end
|
192
|
-
end
|
193
178
|
end
|
194
179
|
if defined?(TTF)
|
195
180
|
class TTF
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
181
|
+
define_draw = proc{|t, n|
|
182
|
+
args = (1..n).map{|k| "arg#{k}"}.join(",")
|
183
|
+
module_eval(<<-EOS)
|
184
|
+
def draw#{t}(dst, text, x, y, #{args})
|
185
|
+
image = render#{t}(text, #{args})
|
186
|
+
dst.put(image, x, y)
|
187
|
+
image.destroy
|
188
|
+
end
|
189
|
+
EOS
|
190
|
+
}
|
191
|
+
|
192
|
+
define_draw["SolidUTF8", 3]
|
193
|
+
define_draw["BlendedUTF8", 3]
|
194
|
+
define_draw["ShadedUTF8",6]
|
195
|
+
if method_defined?(:drawSolid)
|
196
|
+
define_draw["Solid",3]
|
197
|
+
define_draw["Blended", 3]
|
198
|
+
define_draw["Shaded", 6]
|
212
199
|
end
|
213
200
|
end
|
214
201
|
end
|
data/rubysdl.h
CHANGED
@@ -46,14 +46,47 @@ do{ \
|
|
46
46
|
Rect.h=NUM2INT(H); \
|
47
47
|
}while(0) \
|
48
48
|
|
49
|
+
#ifdef ENABLE_M17N
|
50
|
+
#define ExportStringValueToEnc(v,enc) \
|
51
|
+
do { \
|
52
|
+
SafeStringValue(v); \
|
53
|
+
(v) = rb_str_export_to_enc((v),(enc)); \
|
54
|
+
} while (0)
|
55
|
+
#else
|
56
|
+
#define ExportStringValueToEnc(v,enc) \
|
57
|
+
SafeStringValue(v)
|
58
|
+
#endif
|
59
|
+
|
60
|
+
#ifdef ENABLE_M17N_FILESYSTEM
|
61
|
+
#define ExportFilenameStringValue(v) \
|
62
|
+
ExportStringValueToEnc(v,rb_filesystem_encoding())
|
63
|
+
#else
|
64
|
+
#define ExportFilenameStringValue(v) \
|
65
|
+
SafeStringValue(v)
|
66
|
+
#endif
|
67
|
+
|
49
68
|
#define INT2BOOL(x) ((x)?Qtrue:Qfalse)
|
50
69
|
|
51
|
-
/* Global variables */
|
52
|
-
#define eSDLError rubysdl_eSDLError
|
53
70
|
#ifdef DEF_GLOBAL
|
54
|
-
|
71
|
+
#define GLOBAL(typ, var, val) typ var = val
|
55
72
|
#else
|
56
|
-
extern
|
73
|
+
#define GLOBAL(typ, var, val) extern typ var
|
74
|
+
#endif
|
75
|
+
/* Global variables */
|
76
|
+
#define eSDLError rubysdl_eSDLError
|
77
|
+
GLOBAL(VALUE, eSDLError, Qnil);
|
78
|
+
|
79
|
+
#ifdef ENABLE_M17N
|
80
|
+
#define ENC_STR_NEW2(str, enc) rb_enc_str_new((str), strlen((str)), (enc))
|
81
|
+
#include "ruby/encoding.h"
|
82
|
+
#define utf8_enc rubysdl_utf8_enc
|
83
|
+
#define eucjp_enc rubysdl_eucjp_enc
|
84
|
+
#define iso2022jp_enc rubysdl_iso2022jp_enc
|
85
|
+
#define sjis_enc rubysdl_sjis_enc
|
86
|
+
GLOBAL(rb_encoding*, utf8_enc, NULL);
|
87
|
+
GLOBAL(rb_encoding*, eucjp_enc, NULL);
|
88
|
+
GLOBAL(rb_encoding*, iso2022jp_enc, NULL);
|
89
|
+
GLOBAL(rb_encoding*, sjis_enc, NULL);
|
57
90
|
#endif
|
58
91
|
|
59
92
|
/* Global functions */
|
data/rubysdl_cdrom.c
CHANGED
@@ -159,6 +159,18 @@ static VALUE CD_s_MSFToFrames(VALUE klass, VALUE m, VALUE s, VALUE f)
|
|
159
159
|
{
|
160
160
|
return INT2FIX(MSF_TO_FRAMES(NUM2INT(m),NUM2INT(s),NUM2INT(f)));
|
161
161
|
}
|
162
|
+
static VALUE CD_close(VALUE self)
|
163
|
+
{
|
164
|
+
CD* cd = GetCD(self);
|
165
|
+
if( !rubysdl_is_quit() && cd->cd )
|
166
|
+
SDL_CDClose(cd->cd);
|
167
|
+
cd->cd = NULL;
|
168
|
+
return Qnil;
|
169
|
+
}
|
170
|
+
static VALUE CD_closed(VALUE self)
|
171
|
+
{
|
172
|
+
return INT2BOOL(GetCD(self)->cd == NULL);
|
173
|
+
}
|
162
174
|
|
163
175
|
void rubysdl_init_CD(VALUE mSDL)
|
164
176
|
{
|
@@ -185,7 +197,8 @@ void rubysdl_init_CD(VALUE mSDL)
|
|
185
197
|
rb_define_method(cCD, "currentFrame", CD_currentFrame, 0);
|
186
198
|
rb_define_method(cCD, "trackType", CD_trackType, 1);
|
187
199
|
rb_define_method(cCD, "trackLength", CD_trackLength, 1);
|
188
|
-
|
200
|
+
rb_define_method(cCD, "close", CD_close, 0);
|
201
|
+
rb_define_method(cCD, "closed?", CD_closed, 0);
|
189
202
|
|
190
203
|
rb_define_const(cCD, "TRAYEMPTY", INT2NUM(CD_TRAYEMPTY));
|
191
204
|
rb_define_const(cCD, "STOPPED", INT2NUM(CD_STOPPED));
|
data/rubysdl_event.c
CHANGED
@@ -182,11 +182,25 @@ static VALUE Event_s_poll(VALUE class)
|
|
182
182
|
else
|
183
183
|
return Qnil;
|
184
184
|
}
|
185
|
+
#ifdef HAVE_RB_THREAD_BLOCKING_REGION
|
186
|
+
static VALUE wait(void* ev)
|
187
|
+
{
|
188
|
+
return SDL_WaitEvent((SDL_Event*)ev);
|
189
|
+
}
|
190
|
+
#endif
|
185
191
|
static VALUE Event_s_wait(VALUE class)
|
186
192
|
{
|
187
193
|
SDL_Event event;
|
188
194
|
rb_secure(4);
|
195
|
+
#ifdef HAVE_RB_THREAD_BLOCKING_REGION
|
196
|
+
/* Ruby 1.9 and above: Release the global VM lock while calling
|
197
|
+
* SDL_WaitEvent, allowing other Ruby threads to execute. */
|
198
|
+
if( rb_thread_blocking_region(wait, &event, RUBY_UBF_IO, NULL) == 1)
|
199
|
+
#else
|
200
|
+
/* Ruby 1.8 and below: Call SDL_WaitEvent directly.
|
201
|
+
* No other threads can execute during this call. */
|
189
202
|
if( SDL_WaitEvent(&event) == 1)
|
203
|
+
#endif
|
190
204
|
return event_creators[event.type](&event);
|
191
205
|
else
|
192
206
|
rb_raise(eSDLError, "Event handling error");
|
data/rubysdl_image.c
CHANGED