rubysdl 2.0.1 → 2.1.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/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