ruby-miyako 2.1.0 → 2.1.1
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/README +275 -20
- data/extern.h +21 -1
- data/install_miyako.rb +5 -3
- data/lib/Miyako/API/audio.rb +11 -6
- data/lib/Miyako/API/basic_data.rb +0 -985
- data/lib/Miyako/API/bitmap.rb +19 -22
- data/lib/Miyako/API/choices.rb +203 -69
- data/lib/Miyako/API/collision.rb +451 -9
- data/lib/Miyako/API/color.rb +177 -0
- data/lib/Miyako/API/diagram.rb +18 -20
- data/lib/Miyako/API/fixedmap.rb +207 -73
- data/lib/Miyako/API/font.rb +111 -18
- data/lib/Miyako/API/i_yuki.rb +1201 -0
- data/lib/Miyako/API/input.rb +65 -0
- data/lib/Miyako/API/layout.rb +41 -29
- data/lib/Miyako/API/map.rb +202 -157
- data/lib/Miyako/API/map_event.rb +86 -19
- data/lib/Miyako/API/map_struct.rb +268 -0
- data/lib/Miyako/API/modules.rb +136 -37
- data/lib/Miyako/API/movie.rb +8 -8
- data/lib/Miyako/API/parts.rb +63 -20
- data/lib/Miyako/API/plane.rb +4 -4
- data/lib/Miyako/API/screen.rb +16 -8
- data/lib/Miyako/API/sprite.rb +290 -23
- data/lib/Miyako/API/sprite_animation.rb +23 -11
- data/lib/Miyako/API/sprite_list.rb +406 -183
- data/lib/Miyako/API/story.rb +4 -65
- data/lib/Miyako/API/struct_point.rb +157 -0
- data/lib/Miyako/API/struct_rect.rb +233 -0
- data/lib/Miyako/API/struct_segment.rb +641 -0
- data/lib/Miyako/API/struct_size.rb +158 -0
- data/lib/Miyako/API/struct_square.rb +253 -0
- data/lib/Miyako/API/textbox.rb +49 -35
- data/lib/Miyako/API/viewport.rb +5 -5
- data/lib/Miyako/API/wait_counter.rb +350 -0
- data/lib/Miyako/API/yuki.rb +95 -60
- data/lib/Miyako/EXT/raster_scroll.rb +30 -8
- data/lib/Miyako/EXT/slides.rb +6 -6
- data/lib/Miyako/miyako.rb +25 -11
- data/lib/miyako.rb +28 -0
- data/lib/miyako_require_only.rb +35 -0
- data/miyako_basicdata.c +201 -17
- data/miyako_collision.c +315 -6
- data/miyako_diagram.c +331 -0
- data/miyako_drawing.c +26 -7
- data/miyako_font.c +259 -129
- data/miyako_input_audio.c +24 -14
- data/miyako_layout.c +106 -8
- data/miyako_no_katana.c +398 -171
- data/miyako_sprite2.c +275 -38
- data/miyako_transform.c +113 -107
- data/miyako_utility.c +34 -48
- data/miyako_yuki.c +241 -0
- data/sample/Diagram_sample/diagram_sample_yuki2.rb +30 -30
- data/sample/Room3/blue.rb +19 -19
- data/sample/Room3/green.rb +9 -9
- data/sample/Room3/main.rb +12 -12
- data/sample/Room3/red.rb +12 -12
- data/sample/Room3/title.rb +15 -10
- data/sample/collision_test2.rb +2 -1
- data/sample/fixed_map_test/fixed_map_sample.rb +7 -6
- data/sample/map_test/main_scene.rb +12 -10
- data/sample/map_test/map_manager.rb +14 -13
- data/sample/rasterscroll.rb +5 -5
- data/sample/takahashi.rb +3 -3
- data/sample/textbox_sample.rb +7 -6
- data/sample/transform.rb +2 -1
- data/uninstall_miyako.rb +4 -1
- data/win/miyako_no_katana.so +0 -0
- metadata +15 -4
- data/lib/Miyako/EXT/miyako_cairo.rb +0 -62
- data/sample/cairo_sample.rb +0 -25
data/miyako_diagram.c
ADDED
@@ -0,0 +1,331 @@
|
|
1
|
+
/*
|
2
|
+
--
|
3
|
+
Miyako v2.0 Extend Library "Miyako no Katana"
|
4
|
+
Copyright (C) 2008 Cyross Makoto
|
5
|
+
|
6
|
+
This library is free software; you can redistribute it and/or
|
7
|
+
modify it under the terms of the GNU Lesser General Public
|
8
|
+
License as published by the Free Software Foundation; either
|
9
|
+
version 2.1 of the License, or (at your option) any later version.
|
10
|
+
|
11
|
+
This library is distributed in the hope that it will be useful,
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
Lesser General Public License for more details.
|
15
|
+
|
16
|
+
You should have received a copy of the GNU Lesser General Public
|
17
|
+
License along with this library; if not, write to the Free Software
|
18
|
+
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
19
|
+
++
|
20
|
+
*/
|
21
|
+
|
22
|
+
/*
|
23
|
+
=拡張ライブラリmiyako_no_katana
|
24
|
+
Authors:: サイロス誠
|
25
|
+
Version:: 2.0
|
26
|
+
Copyright:: 2007-2008 Cyross Makoto
|
27
|
+
License:: LGPL2.1
|
28
|
+
*/
|
29
|
+
#include "defines.h"
|
30
|
+
#include "extern.h"
|
31
|
+
|
32
|
+
static VALUE mMiyako = Qnil;
|
33
|
+
static VALUE mDiagram = Qnil;
|
34
|
+
static VALUE eMiyakoError = Qnil;
|
35
|
+
static VALUE cDiagramBody = Qnil;
|
36
|
+
static VALUE cManager = Qnil;
|
37
|
+
static VALUE cProcessor = Qnil;
|
38
|
+
static VALUE nZero = Qnil;
|
39
|
+
static VALUE nOne = Qnil;
|
40
|
+
static VALUE symExecute = Qnil;
|
41
|
+
static VALUE symPause = Qnil;
|
42
|
+
static VALUE symImm = Qnil;
|
43
|
+
static VALUE symNext = Qnil;
|
44
|
+
static volatile ID id_start = Qnil;
|
45
|
+
static volatile ID id_stop = Qnil;
|
46
|
+
static volatile ID id_finish = Qnil;
|
47
|
+
static volatile ID id_update = Qnil;
|
48
|
+
static volatile ID id_update_input = Qnil;
|
49
|
+
static volatile ID id_render = Qnil;
|
50
|
+
static volatile ID id_render_to = Qnil;
|
51
|
+
static volatile ID id_post_render = Qnil;
|
52
|
+
static volatile ID id_is_render = Qnil;
|
53
|
+
static volatile ID id_go_next = Qnil;
|
54
|
+
static volatile ID id_is_update = Qnil;
|
55
|
+
static volatile ID id_post_update = Qnil;
|
56
|
+
static volatile ID id_reset_input = Qnil;
|
57
|
+
static volatile ID id_trigger = Qnil;
|
58
|
+
static volatile ID id_to = Qnil;
|
59
|
+
static volatile ID id_post_process = Qnil;
|
60
|
+
static volatile ID id_pre_process = Qnil;
|
61
|
+
static volatile int zero = Qnil;
|
62
|
+
static volatile int one = Qnil;
|
63
|
+
static const char *str_visible = "@visible";
|
64
|
+
static const char *str_diagram = "@diagram";
|
65
|
+
static const char *str_states = "@states";
|
66
|
+
static const char *str_ptr = "@ptr";
|
67
|
+
static const char *str_node = "@node";
|
68
|
+
static const char *str_trigger = "@trigger";
|
69
|
+
static const char *str_next_trigger = "@next_trigger";
|
70
|
+
static const char *str_arrow = "@arrow";
|
71
|
+
|
72
|
+
/*
|
73
|
+
:nodoc:
|
74
|
+
*/
|
75
|
+
static VALUE dbody_update_input(int argc, VALUE *argv, VALUE self)
|
76
|
+
{
|
77
|
+
VALUE params;
|
78
|
+
rb_scan_args(argc, argv, "00*", ¶ms);
|
79
|
+
|
80
|
+
VALUE node = rb_iv_get(self, str_node);
|
81
|
+
if(node == Qnil) return Qnil;
|
82
|
+
rb_funcall2(node, id_update_input, argc, argv);
|
83
|
+
return Qnil;
|
84
|
+
}
|
85
|
+
|
86
|
+
/*
|
87
|
+
:nodoc:
|
88
|
+
*/
|
89
|
+
static VALUE dbody_update(int argc, VALUE *argv, VALUE self)
|
90
|
+
{
|
91
|
+
VALUE params;
|
92
|
+
rb_scan_args(argc, argv, "00*", ¶ms);
|
93
|
+
|
94
|
+
VALUE trigger = rb_iv_get(self, str_trigger);
|
95
|
+
if(rb_funcall(trigger, id_is_update, 0) == Qfalse) return Qnil;
|
96
|
+
|
97
|
+
VALUE node = rb_iv_get(self, str_node);
|
98
|
+
rb_funcall2(node, id_update, argc, argv);
|
99
|
+
rb_funcall(trigger, id_post_update, 0);
|
100
|
+
rb_funcall(node, id_reset_input, 0);
|
101
|
+
|
102
|
+
VALUE ntrigger = rb_iv_get(self, str_next_trigger);
|
103
|
+
|
104
|
+
if(ntrigger == Qnil) return Qnil;
|
105
|
+
|
106
|
+
rb_iv_set(self, str_trigger, ntrigger);
|
107
|
+
rb_iv_set(self, str_next_trigger, Qnil);
|
108
|
+
return Qnil;
|
109
|
+
}
|
110
|
+
|
111
|
+
/*
|
112
|
+
:nodoc:
|
113
|
+
*/
|
114
|
+
static VALUE dbody_render(VALUE self)
|
115
|
+
{
|
116
|
+
VALUE trigger = rb_iv_get(self, str_trigger);
|
117
|
+
if(rb_funcall(trigger, id_is_render, 0) == Qfalse) return Qnil;
|
118
|
+
VALUE node = rb_iv_get(self, str_node);
|
119
|
+
rb_funcall(node, id_render, 0);
|
120
|
+
rb_funcall(trigger, id_post_render, 0);
|
121
|
+
return Qnil;
|
122
|
+
}
|
123
|
+
|
124
|
+
/*
|
125
|
+
:nodoc:
|
126
|
+
*/
|
127
|
+
static VALUE dbody_go_next(VALUE self)
|
128
|
+
{
|
129
|
+
VALUE next_obj = self;
|
130
|
+
VALUE arrows = rb_iv_get(self, str_arrow);
|
131
|
+
VALUE *arrows_p = RARRAY_PTR(arrows);
|
132
|
+
VALUE node = rb_iv_get(self, str_node);
|
133
|
+
VALUE call_arg = rb_ary_new();
|
134
|
+
rb_ary_push(call_arg, node);
|
135
|
+
int i;
|
136
|
+
for(i=0;i<RARRAY_LEN(arrows);i++)
|
137
|
+
{
|
138
|
+
VALUE arrow = *(arrows_p+i);
|
139
|
+
VALUE trigger = rb_funcall(arrow, id_trigger, 0);
|
140
|
+
if((trigger != Qnil && rb_proc_call(trigger, call_arg)) || rb_funcall(node, id_finish, 0))
|
141
|
+
{
|
142
|
+
next_obj = rb_funcall(arrow, id_to, 0);
|
143
|
+
break;
|
144
|
+
}
|
145
|
+
}
|
146
|
+
if(!rb_eql(self, next_obj)){
|
147
|
+
VALUE trigger = rb_iv_get(self, str_trigger);
|
148
|
+
rb_funcall(trigger, id_post_process, 0);
|
149
|
+
}
|
150
|
+
return next_obj;
|
151
|
+
}
|
152
|
+
|
153
|
+
/*
|
154
|
+
:nodoc:
|
155
|
+
*/
|
156
|
+
static VALUE dbody_replace_trigger(int argc, VALUE *argv, VALUE self)
|
157
|
+
{
|
158
|
+
VALUE new_trigger;
|
159
|
+
VALUE timing;
|
160
|
+
rb_scan_args(argc, argv, "11", &new_trigger, &timing);
|
161
|
+
if(timing == Qnil) timing = symNext;
|
162
|
+
else if(timing != symImm || timing != symNext)
|
163
|
+
{
|
164
|
+
char str[256];
|
165
|
+
VALUE timing_str = StringValue(timing);
|
166
|
+
sprintf(str, "I can't understand Timing Type! : %s", rb_string_value_ptr(&timing_str));
|
167
|
+
rb_raise(eMiyakoError, str);
|
168
|
+
}
|
169
|
+
if(timing == symImm)
|
170
|
+
{
|
171
|
+
VALUE trigger = rb_iv_get(self, str_trigger);
|
172
|
+
rb_funcall(trigger, id_post_process, 0);
|
173
|
+
rb_iv_set(self, str_trigger, new_trigger);
|
174
|
+
rb_funcall(trigger, id_pre_process, 0);
|
175
|
+
|
176
|
+
}
|
177
|
+
else if(timing == symNext)
|
178
|
+
{
|
179
|
+
rb_iv_set(self, str_next_trigger, new_trigger);
|
180
|
+
}
|
181
|
+
return Qnil;
|
182
|
+
}
|
183
|
+
|
184
|
+
/*
|
185
|
+
:nodoc:
|
186
|
+
*/
|
187
|
+
static VALUE manager_update_input(int argc, VALUE *argv, VALUE self)
|
188
|
+
{
|
189
|
+
VALUE params;
|
190
|
+
rb_scan_args(argc, argv, "00*", ¶ms);
|
191
|
+
|
192
|
+
VALUE ptr = rb_iv_get(self, str_ptr);
|
193
|
+
if(ptr == Qnil) return Qnil;
|
194
|
+
dbody_update_input(argc, argv, ptr);
|
195
|
+
return Qnil;
|
196
|
+
}
|
197
|
+
|
198
|
+
/*
|
199
|
+
:nodoc:
|
200
|
+
*/
|
201
|
+
static VALUE manager_update(int argc, VALUE *argv, VALUE self)
|
202
|
+
{
|
203
|
+
VALUE params;
|
204
|
+
rb_scan_args(argc, argv, "00*", ¶ms);
|
205
|
+
|
206
|
+
VALUE ptr = rb_iv_get(self, str_ptr);
|
207
|
+
if(ptr == Qnil) return Qnil;
|
208
|
+
|
209
|
+
dbody_update(argc, argv, ptr);
|
210
|
+
|
211
|
+
VALUE nxt = rb_funcall(ptr, id_go_next, 0);
|
212
|
+
|
213
|
+
if(!rb_eql(ptr, nxt))
|
214
|
+
{
|
215
|
+
rb_funcall(ptr, id_stop, 0);
|
216
|
+
rb_iv_set(self, str_ptr, nxt);
|
217
|
+
ptr = rb_iv_get(self, str_ptr);
|
218
|
+
if(ptr != Qnil) rb_funcall(ptr, id_start, 0);
|
219
|
+
}
|
220
|
+
return Qnil;
|
221
|
+
}
|
222
|
+
|
223
|
+
/*
|
224
|
+
:nodoc:
|
225
|
+
*/
|
226
|
+
static VALUE manager_render(VALUE self)
|
227
|
+
{
|
228
|
+
VALUE ptr = rb_iv_get(self, str_ptr);
|
229
|
+
if(ptr == Qnil) return Qnil;
|
230
|
+
dbody_render(ptr);
|
231
|
+
return Qnil;
|
232
|
+
}
|
233
|
+
|
234
|
+
/*
|
235
|
+
:nodoc:
|
236
|
+
*/
|
237
|
+
static VALUE processor_update_input(int argc, VALUE *argv, VALUE self)
|
238
|
+
{
|
239
|
+
VALUE params;
|
240
|
+
rb_scan_args(argc, argv, "00*", ¶ms);
|
241
|
+
|
242
|
+
VALUE states = rb_iv_get(self, str_states);
|
243
|
+
if(rb_hash_lookup(states, symPause) == Qtrue) return Qnil;
|
244
|
+
|
245
|
+
VALUE diagram = rb_iv_get(self, str_diagram);
|
246
|
+
manager_update_input(argc, argv, diagram);
|
247
|
+
return Qnil;
|
248
|
+
}
|
249
|
+
|
250
|
+
/*
|
251
|
+
:nodoc:
|
252
|
+
*/
|
253
|
+
static VALUE processor_update(int argc, VALUE *argv, VALUE self)
|
254
|
+
{
|
255
|
+
VALUE params;
|
256
|
+
rb_scan_args(argc, argv, "00*", ¶ms);
|
257
|
+
|
258
|
+
VALUE states = rb_iv_get(self, str_states);
|
259
|
+
|
260
|
+
if(rb_hash_lookup(states, symPause) == Qtrue) return Qnil;
|
261
|
+
|
262
|
+
VALUE diagram = rb_iv_get(self, str_diagram);
|
263
|
+
manager_update(argc, argv, diagram);
|
264
|
+
|
265
|
+
if(rb_funcall(diagram, id_finish, 0) == Qtrue){
|
266
|
+
rb_hash_aset(states, symExecute, Qfalse);
|
267
|
+
}
|
268
|
+
return Qnil;
|
269
|
+
}
|
270
|
+
|
271
|
+
/*
|
272
|
+
:nodoc:
|
273
|
+
*/
|
274
|
+
static VALUE processor_render(VALUE self)
|
275
|
+
{
|
276
|
+
if(rb_iv_get(self, str_visible) == Qfalse) return Qnil;
|
277
|
+
manager_render(rb_iv_get(self, str_diagram));
|
278
|
+
return Qnil;
|
279
|
+
}
|
280
|
+
|
281
|
+
void Init_miyako_diagram()
|
282
|
+
{
|
283
|
+
mMiyako = rb_define_module("Miyako");
|
284
|
+
mDiagram = rb_define_module_under(mMiyako, "Diagram");
|
285
|
+
eMiyakoError = rb_define_class_under(mMiyako, "MiyakoError", rb_eException);
|
286
|
+
cProcessor = rb_define_class_under(mDiagram, "Processor", rb_cObject);
|
287
|
+
cManager = rb_define_class_under(mDiagram, "Manager", rb_cObject);
|
288
|
+
cDiagramBody = rb_define_class_under(mDiagram, "DiagramBody", rb_cObject);
|
289
|
+
|
290
|
+
id_start = rb_intern("start");
|
291
|
+
id_stop = rb_intern("stop");
|
292
|
+
id_finish = rb_intern("finish?");
|
293
|
+
id_update = rb_intern("update");
|
294
|
+
id_update_input = rb_intern("update_input");
|
295
|
+
id_render = rb_intern("render");
|
296
|
+
id_render_to = rb_intern("render_to");
|
297
|
+
id_post_render = rb_intern("post_render");
|
298
|
+
id_is_render = rb_intern("render?");
|
299
|
+
id_go_next = rb_intern("go_next");
|
300
|
+
id_is_update = rb_intern("update?");
|
301
|
+
id_post_update = rb_intern("post_update");
|
302
|
+
id_reset_input = rb_intern("reset_input");
|
303
|
+
id_trigger = rb_intern("trigger");
|
304
|
+
id_to = rb_intern("to");
|
305
|
+
id_post_process = rb_intern("post_process");
|
306
|
+
id_pre_process = rb_intern("pre_process");
|
307
|
+
|
308
|
+
symExecute = ID2SYM(rb_intern("execute"));
|
309
|
+
symPause = ID2SYM(rb_intern("pause"));
|
310
|
+
symImm = ID2SYM(rb_intern("immediate"));
|
311
|
+
symNext = ID2SYM(rb_intern("next"));
|
312
|
+
|
313
|
+
zero = 0;
|
314
|
+
nZero = INT2NUM(zero);
|
315
|
+
one = 1;
|
316
|
+
nOne = INT2NUM(one);
|
317
|
+
|
318
|
+
rb_define_method(cDiagramBody, "update_input", dbody_update_input, -1);
|
319
|
+
rb_define_method(cDiagramBody, "update", dbody_update, -1);
|
320
|
+
rb_define_method(cDiagramBody, "render", dbody_render, 0);
|
321
|
+
rb_define_method(cDiagramBody, "go_next", dbody_go_next, 0);
|
322
|
+
rb_define_method(cDiagramBody, "replace_trigger", dbody_replace_trigger, -1);
|
323
|
+
|
324
|
+
rb_define_method(cManager, "update_input", manager_update_input, -1);
|
325
|
+
rb_define_method(cManager, "update", manager_update, -1);
|
326
|
+
rb_define_method(cManager, "render", manager_render, 0);
|
327
|
+
|
328
|
+
rb_define_method(cProcessor, "update_input", processor_update_input, -1);
|
329
|
+
rb_define_method(cProcessor, "update", processor_update, -1);
|
330
|
+
rb_define_method(cProcessor, "render", processor_render, 0);
|
331
|
+
}
|
data/miyako_drawing.c
CHANGED
@@ -95,9 +95,9 @@ static VALUE drawing_draw_polygon(int argc, VALUE *argv, VALUE self)
|
|
95
95
|
Uint8 alpha;
|
96
96
|
Uint32 color;
|
97
97
|
int i, vertexes;
|
98
|
-
|
98
|
+
|
99
99
|
rb_scan_args(argc, argv, "32", &vdst, &pairs, &mcolor, &fill, &aa);
|
100
|
-
|
100
|
+
|
101
101
|
// bitmapメソッドを持っていれば、メソッドの値をvdstとする
|
102
102
|
VALUE methods = rb_funcall(vdst, rb_intern("methods"), 0);
|
103
103
|
if(rb_ary_includes(methods, rb_str_intern(rb_str_new2("to_unit"))) == Qfalse &&
|
@@ -112,7 +112,7 @@ static VALUE drawing_draw_polygon(int argc, VALUE *argv, VALUE self)
|
|
112
112
|
// 頂点数チェック
|
113
113
|
if(vertexes > 65536)
|
114
114
|
rb_raise(eMiyakoError, "too many pairs. pairs is less than 65536.");
|
115
|
-
|
115
|
+
|
116
116
|
// 範囲チェック
|
117
117
|
for(i=0; i<vertexes; i++)
|
118
118
|
{
|
@@ -120,7 +120,7 @@ static VALUE drawing_draw_polygon(int argc, VALUE *argv, VALUE self)
|
|
120
120
|
Sint16 x, y;
|
121
121
|
get_position(vertex, &x, &y);
|
122
122
|
}
|
123
|
-
|
123
|
+
|
124
124
|
SDL_Surface *dst = GetSurface(vdst)->surface;
|
125
125
|
|
126
126
|
color = value_2_color(rb_funcall(cColor, rb_intern("to_rgb"), 1, mcolor), dst->format, &alpha);
|
@@ -135,7 +135,7 @@ static VALUE drawing_draw_polygon(int argc, VALUE *argv, VALUE self)
|
|
135
135
|
VALUE vertex = *(RARRAY_PTR(pairs)+i);
|
136
136
|
get_position(vertex, px+i, py+i);
|
137
137
|
}
|
138
|
-
|
138
|
+
|
139
139
|
if(!RTEST(fill) && !RTEST(aa) && alpha == 255)
|
140
140
|
{
|
141
141
|
for(i=0; i<vertexes-1; i++)
|
@@ -166,13 +166,31 @@ static VALUE drawing_draw_polygon(int argc, VALUE *argv, VALUE self)
|
|
166
166
|
sge_FilledPolygonAlpha(dst, (Uint16)vertexes, px, py, color, alpha);
|
167
167
|
else if(RTEST(fill) && RTEST(aa) && alpha == 255)
|
168
168
|
sge_AAFilledPolygon(dst, (Uint16)vertexes, px, py, color);
|
169
|
-
|
169
|
+
|
170
170
|
free(py);
|
171
171
|
free(px);
|
172
172
|
|
173
173
|
return Qnil;
|
174
174
|
}
|
175
175
|
|
176
|
+
/*
|
177
|
+
ポリゴン描画
|
178
|
+
*/
|
179
|
+
static VALUE screen_clear(VALUE self)
|
180
|
+
{
|
181
|
+
VALUE dst = rb_iv_get(mScreen, "@@unit");
|
182
|
+
SDL_Surface *pdst = GetSurface(*(RSTRUCT_PTR(dst)))->surface;
|
183
|
+
|
184
|
+
sge_ClearSurface(pdst, 0);
|
185
|
+
|
186
|
+
return self;
|
187
|
+
}
|
188
|
+
|
189
|
+
void _miyako_screen_clear()
|
190
|
+
{
|
191
|
+
screen_clear(mScreen);
|
192
|
+
}
|
193
|
+
|
176
194
|
void Init_miyako_drawing()
|
177
195
|
{
|
178
196
|
mSDL = rb_define_module("SDL");
|
@@ -182,6 +200,7 @@ void Init_miyako_drawing()
|
|
182
200
|
eMiyakoError = rb_define_class_under(mMiyako, "MiyakoError", rb_eException);
|
183
201
|
cSurface = rb_define_class_under(mSDL, "Surface", rb_cObject);
|
184
202
|
cColor = rb_define_class_under(mMiyako, "Color", rb_cObject);
|
185
|
-
|
203
|
+
|
186
204
|
rb_define_singleton_method(mDrawing, "polygon", drawing_draw_polygon, -1);
|
205
|
+
rb_define_singleton_method(mScreen, "clear", screen_clear, 0);
|
187
206
|
}
|