rubygame 2.5.3 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CREDITS +6 -4
- data/NEWS +79 -0
- data/README +55 -72
- data/ROADMAP +20 -13
- data/doc/custom_sdl_load_paths.rdoc +79 -0
- data/doc/getting_started.rdoc +65 -36
- data/doc/keyboard_symbols.rdoc +243 -0
- data/doc/macosx_install.rdoc +49 -35
- data/doc/windows_install.rdoc +36 -108
- data/lib/rubygame.rb +62 -24
- data/lib/rubygame/audio.rb +147 -0
- data/lib/rubygame/clock.rb +164 -1
- data/lib/rubygame/color.rb +40 -7
- data/lib/rubygame/color/models/hsl.rb +1 -1
- data/lib/rubygame/color/models/hsv.rb +1 -1
- data/lib/rubygame/color/models/rgb.rb +1 -1
- data/lib/rubygame/color/palettes/css.rb +1 -3
- data/lib/rubygame/color/palettes/x11.rb +1 -2
- data/lib/rubygame/constants.rb +297 -0
- data/lib/rubygame/deprecated_mixer.rb +555 -0
- data/lib/rubygame/event.rb +122 -6
- data/lib/rubygame/event_handler.rb +3 -1
- data/lib/rubygame/event_hook.rb +6 -2
- data/lib/rubygame/event_triggers.rb +1 -1
- data/lib/rubygame/events.rb +416 -1
- data/lib/rubygame/ftor.rb +1 -7
- data/lib/rubygame/gfx.rb +583 -0
- data/lib/rubygame/gl.rb +107 -0
- data/lib/rubygame/image.rb +140 -0
- data/lib/rubygame/joystick.rb +184 -0
- data/lib/rubygame/main.rb +82 -0
- data/lib/rubygame/mediabag.rb +1 -1
- data/lib/rubygame/mixer.rb +30 -0
- data/lib/rubygame/music.rb +493 -0
- data/lib/rubygame/queue.rb +3 -1
- data/lib/rubygame/rect.rb +9 -9
- data/lib/rubygame/screen.rb +357 -0
- data/lib/rubygame/shared.rb +40 -4
- data/lib/rubygame/sound.rb +428 -0
- data/lib/rubygame/surface.rb +626 -0
- data/lib/rubygame/ttf.rb +311 -0
- data/samples/FreeSans.ttf +0 -0
- data/samples/README +6 -5
- data/samples/demo_draw.rb +1 -1
- data/samples/demo_gl.rb +3 -1
- data/samples/demo_gl_tex.rb +4 -2
- data/samples/demo_rubygame.rb +114 -105
- data/samples/demo_sfont.rb +1 -1
- data/samples/demo_ttf.rb +3 -1
- data/samples/demo_utf8.rb +1 -1
- data/samples/image_viewer.rb +118 -0
- data/samples/load_and_blit.rb +1 -1
- data/samples/rubygame.png +0 -0
- metadata +34 -40
- data/Rakefile +0 -537
- data/doc/extended_readme.rdoc +0 -49
- data/ext/body/rubygame_body.so +0 -0
- data/ext/rubygame/rubygame_clock.c +0 -301
- data/ext/rubygame/rubygame_clock.h +0 -32
- data/ext/rubygame/rubygame_event.c +0 -760
- data/ext/rubygame/rubygame_event.h +0 -48
- data/ext/rubygame/rubygame_event2.c +0 -661
- data/ext/rubygame/rubygame_event2.h +0 -29
- data/ext/rubygame/rubygame_gfx.c +0 -942
- data/ext/rubygame/rubygame_gfx.h +0 -101
- data/ext/rubygame/rubygame_gl.c +0 -154
- data/ext/rubygame/rubygame_gl.h +0 -32
- data/ext/rubygame/rubygame_image.c +0 -252
- data/ext/rubygame/rubygame_image.h +0 -41
- data/ext/rubygame/rubygame_joystick.c +0 -336
- data/ext/rubygame/rubygame_joystick.h +0 -41
- data/ext/rubygame/rubygame_main.c +0 -158
- data/ext/rubygame/rubygame_main.h +0 -36
- data/ext/rubygame/rubygame_mixer.c +0 -1024
- data/ext/rubygame/rubygame_mixer.h +0 -36
- data/ext/rubygame/rubygame_music.c +0 -1017
- data/ext/rubygame/rubygame_music.h +0 -29
- data/ext/rubygame/rubygame_screen.c +0 -572
- data/ext/rubygame/rubygame_screen.h +0 -45
- data/ext/rubygame/rubygame_shared.c +0 -269
- data/ext/rubygame/rubygame_shared.h +0 -69
- data/ext/rubygame/rubygame_sound.c +0 -863
- data/ext/rubygame/rubygame_sound.h +0 -29
- data/ext/rubygame/rubygame_surface.c +0 -1153
- data/ext/rubygame/rubygame_surface.h +0 -62
- data/ext/rubygame/rubygame_ttf.c +0 -599
- data/ext/rubygame/rubygame_ttf.h +0 -69
- data/samples/keys.rb +0 -52
data/doc/extended_readme.rdoc
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
= Extended README
|
2
|
-
|
3
|
-
(Stuff that didn't make it into the main README file.)
|
4
|
-
|
5
|
-
== Internal structure of Rubygame
|
6
|
-
|
7
|
-
Rubygame's core is a low-level extension written in C; it
|
8
|
-
provides a basic interface to SDL and its companion libraries.
|
9
|
-
Building upon that is a ruby library which implements high-level
|
10
|
-
concepts like game objects, event management, etc.
|
11
|
-
|
12
|
-
Rubygame is modular, meaning you can pick and choose which parts to use.
|
13
|
-
For example, if you don't need TrueType font support, SDL_ttf is not
|
14
|
-
required to compile Rubygame. It is possible for a game to detect at
|
15
|
-
run-time which features are present, and behave accordingly (for example,
|
16
|
-
the game might disable certain optional features).
|
17
|
-
|
18
|
-
Rubygame is multi-tiered, meaning you can access Rubygame's functionality
|
19
|
-
on a number of levels, each level being built on the level below it.
|
20
|
-
Each higher level is closer to a complete game, but is also less flexible.
|
21
|
-
The idea here is that developers will use the higher levels most of the
|
22
|
-
time, but be free to hack lower levels when they need to do something
|
23
|
-
special.
|
24
|
-
|
25
|
-
== About the version number
|
26
|
-
|
27
|
-
The version number of Rubygame has a strict meaning, to help you decide
|
28
|
-
whether the new version might break your application. The version number has
|
29
|
-
3 parts: the major version number, the minor version number, and the patch
|
30
|
-
number. For the example of Rubygame 2.0.0:
|
31
|
-
|
32
|
-
2 . 0 . 0
|
33
|
-
MAJOR . MINOR . PATCH
|
34
|
-
|
35
|
-
When a new release of Rubygame is made, one of the version numbers will
|
36
|
-
go up, and the numbers that come after it will be reset to 0. Which number
|
37
|
-
will go up depends on how much the Rubygame API changed:
|
38
|
-
|
39
|
-
- *MAJOR*: API has changed, and old apps must be updated.
|
40
|
-
An example of this is when a class has been significantly changed, or a
|
41
|
-
method has renamed/moved to another module and the old name is removed.
|
42
|
-
|
43
|
-
- *MINOR*: API has changed, but old apps will still work.
|
44
|
-
An example of this is when a new feature has been added, or a
|
45
|
-
method has been renamed but the old name is still supported.
|
46
|
-
|
47
|
-
- *PATCH*: API has not changed at all.
|
48
|
-
An example of this is when a bug has been fixed, or existing code has
|
49
|
-
been improved beneath the surface.
|
data/ext/body/rubygame_body.so
DELETED
Binary file
|
@@ -1,301 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Functions for getting the time since initialization and delaying execution
|
3
|
-
* for a specified amounts of time.
|
4
|
-
*
|
5
|
-
* --
|
6
|
-
*
|
7
|
-
* Rubygame -- Ruby code and bindings to SDL to facilitate game creation
|
8
|
-
* Copyright (C) 2004-2009 John Croisant
|
9
|
-
*
|
10
|
-
* This library is free software; you can redistribute it and/or
|
11
|
-
* modify it under the terms of the GNU Lesser General Public
|
12
|
-
* License as published by the Free Software Foundation; either
|
13
|
-
* version 2.1 of the License, or (at your option) any later version.
|
14
|
-
*
|
15
|
-
* This library is distributed in the hope that it will be useful,
|
16
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
17
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
18
|
-
* Lesser General Public License for more details.
|
19
|
-
*
|
20
|
-
* You should have received a copy of the GNU Lesser General Public
|
21
|
-
* License along with this library; if not, write to the Free Software
|
22
|
-
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
23
|
-
*
|
24
|
-
* ++
|
25
|
-
*/
|
26
|
-
|
27
|
-
#include "rubygame_shared.h"
|
28
|
-
#include "rubygame_clock.h"
|
29
|
-
|
30
|
-
void Rubygame_Init_Clock();
|
31
|
-
|
32
|
-
VALUE cClock;
|
33
|
-
|
34
|
-
VALUE rbgm_clock_wait(int, VALUE*, VALUE);
|
35
|
-
VALUE rbgm_clock_delay(int, VALUE*, VALUE);
|
36
|
-
VALUE rbgm_clock_runtime(VALUE);
|
37
|
-
|
38
|
-
|
39
|
-
/* Initialize the SDL timer system, if it hasn't been already. */
|
40
|
-
void rg_init_sdl_timer()
|
41
|
-
{
|
42
|
-
if(!SDL_WasInit(SDL_INIT_TIMER))
|
43
|
-
{
|
44
|
-
if(SDL_InitSubSystem(SDL_INIT_TIMER))
|
45
|
-
{
|
46
|
-
rb_raise(eSDLError,"Could not initialize timer system: %s",\
|
47
|
-
SDL_GetError());
|
48
|
-
}
|
49
|
-
}
|
50
|
-
}
|
51
|
-
|
52
|
-
|
53
|
-
/* NOTICE: if you change this value "officially", don't forget to update the
|
54
|
-
* documentation for rbgm_time_delay!!
|
55
|
-
*/
|
56
|
-
#define WORST_CLOCK_ACCURACY 12
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
/* Delays for the given amount of time, but possibly split into small
|
61
|
-
* parts. Control is given to ruby between each part, so that other
|
62
|
-
* threads can run.
|
63
|
-
*
|
64
|
-
* delay: How many milliseconds to delay.
|
65
|
-
* nice: If 1 (true), split the delay into smaller parts and allow
|
66
|
-
* other ruby threads to run between each part.
|
67
|
-
*
|
68
|
-
*/
|
69
|
-
Uint32 rg_threaded_delay( Uint32 delay, int nice )
|
70
|
-
{
|
71
|
-
Uint32 start;
|
72
|
-
|
73
|
-
start = SDL_GetTicks();
|
74
|
-
|
75
|
-
if( nice )
|
76
|
-
{
|
77
|
-
while( SDL_GetTicks() < start + delay )
|
78
|
-
{
|
79
|
-
SDL_Delay(1);
|
80
|
-
rb_thread_schedule(); /* give control to ruby */
|
81
|
-
}
|
82
|
-
}
|
83
|
-
else
|
84
|
-
{
|
85
|
-
SDL_Delay( delay );
|
86
|
-
}
|
87
|
-
|
88
|
-
return SDL_GetTicks() - start;
|
89
|
-
}
|
90
|
-
|
91
|
-
|
92
|
-
/*
|
93
|
-
* call-seq:
|
94
|
-
* Clock.wait( time, nice=false ) -> Integer
|
95
|
-
*
|
96
|
-
* time:: The target wait time, in milliseconds.
|
97
|
-
* (Non-negative Integer. Required.)
|
98
|
-
* nice:: If true, try to let other ruby threads run during the delay.
|
99
|
-
* (true or false. Optional.)
|
100
|
-
*
|
101
|
-
* Returns:: The actual wait time, in milliseconds.
|
102
|
-
*
|
103
|
-
* Pause the program for approximately +time+ milliseconds. Both this
|
104
|
-
* function and Clock.delay can be used to slow down the framerate so
|
105
|
-
* that the application doesn't use too much CPU time. See also
|
106
|
-
* Clock#tick for a good and easy way to limit the framerate.
|
107
|
-
*
|
108
|
-
* The accuracy of this function depends on processor scheduling,
|
109
|
-
* which varies with operating system and hardware. The actual delay
|
110
|
-
* time may be up to 10ms longer than +time+. If you need more
|
111
|
-
* accuracy use Clock.delay, which is more accurate but uses slightly
|
112
|
-
* more CPU time.
|
113
|
-
*
|
114
|
-
* If +nice+ is true, this function will try to allow other ruby
|
115
|
-
* threads to run during this function. Otherwise, other ruby threads
|
116
|
-
* will probably also be paused. Setting +nice+ to true is only
|
117
|
-
* useful if your application is multithreaded. It's safe (but
|
118
|
-
* pointless) to use this feature for single threaded applications.
|
119
|
-
*
|
120
|
-
* The Rubygame timer system will be initialized when you call this
|
121
|
-
* function, if it has not been already. See Clock.runtime.
|
122
|
-
*
|
123
|
-
*/
|
124
|
-
VALUE rbgm_clock_wait(int argc, VALUE *argv, VALUE module)
|
125
|
-
{
|
126
|
-
rg_init_sdl_timer();
|
127
|
-
|
128
|
-
VALUE vtime, vnice;
|
129
|
-
|
130
|
-
rb_scan_args(argc,argv,"11", &vtime, &vnice);
|
131
|
-
|
132
|
-
int delay = NUM2INT(vtime);
|
133
|
-
if( delay < 0 )
|
134
|
-
{
|
135
|
-
delay = 0;
|
136
|
-
}
|
137
|
-
|
138
|
-
int nice = (vnice == Qtrue) ? 1 : 0;
|
139
|
-
|
140
|
-
return UINT2NUM( rg_threaded_delay(delay, nice) );
|
141
|
-
}
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
/*--
|
146
|
-
* From pygame code, with a few modifications:
|
147
|
-
* - takes 'accuracy' argument
|
148
|
-
* - ruby syntax for raising exceptions
|
149
|
-
* - uses rg_threaded_delay
|
150
|
-
*++
|
151
|
-
*/
|
152
|
-
static Uint32 accurate_delay(Uint32 ticks, Uint32 accuracy, int nice)
|
153
|
-
{
|
154
|
-
Uint32 funcstart;
|
155
|
-
int delay;
|
156
|
-
|
157
|
-
if( accuracy <= 0 )
|
158
|
-
{
|
159
|
-
/* delay with no accuracy is like wait (no busy waiting) */
|
160
|
-
return rg_threaded_delay(ticks, nice);
|
161
|
-
}
|
162
|
-
|
163
|
-
funcstart = SDL_GetTicks();
|
164
|
-
|
165
|
-
if(ticks >= accuracy)
|
166
|
-
{
|
167
|
-
delay = ticks - (ticks % accuracy);
|
168
|
-
delay -= 2; /* Aim low so we don't overshoot. */
|
169
|
-
|
170
|
-
if(delay >= accuracy && delay > 0)
|
171
|
-
{
|
172
|
-
rg_threaded_delay(delay, nice);
|
173
|
-
}
|
174
|
-
}
|
175
|
-
|
176
|
-
do{
|
177
|
-
delay = ticks - (SDL_GetTicks() - funcstart);
|
178
|
-
|
179
|
-
if( nice == 1 )
|
180
|
-
{
|
181
|
-
rb_thread_schedule(); /* give control to ruby */
|
182
|
-
}
|
183
|
-
}while(delay > 0);
|
184
|
-
|
185
|
-
return SDL_GetTicks() - funcstart;
|
186
|
-
}
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
/*
|
191
|
-
* call-seq:
|
192
|
-
* Clock.delay( time, gran=12, nice=false ) -> Integer
|
193
|
-
*
|
194
|
-
* time:: The target delay time, in milliseconds.
|
195
|
-
* (Non-negative integer. Required.)
|
196
|
-
* gran:: The assumed granularity (in ms) of the system clock.
|
197
|
-
* (Non-negative integer. Optional. Default: 12.)
|
198
|
-
* nice:: If true, try to let other ruby threads run during the delay.
|
199
|
-
* (true or false. Optional. Default: false.)
|
200
|
-
*
|
201
|
-
* Returns:: The actual delay time, in milliseconds.
|
202
|
-
*
|
203
|
-
* Pause the program for +time+ milliseconds. This function is more
|
204
|
-
* accurate than Clock.wait, but uses slightly more CPU time. Both
|
205
|
-
* this function and Clock.wait can be used to slow down the
|
206
|
-
* framerate so that the application doesn't use too much CPU time.
|
207
|
-
* See also Clock#tick for a good and easy way to limit the
|
208
|
-
* framerate.
|
209
|
-
*
|
210
|
-
* This function uses "busy waiting" during the last part
|
211
|
-
* of the delay, for increased accuracy. The value of +gran+ affects
|
212
|
-
* how many milliseconds of the delay are spent in busy waiting, and thus
|
213
|
-
* how much CPU it uses. A smaller +gran+ value uses less CPU, but if
|
214
|
-
* it's smaller than the true system granularity, this function may
|
215
|
-
* delay a few milliseconds too long. The default value (12ms) is very
|
216
|
-
* safe, but a value of approximately 5ms would give a better balance
|
217
|
-
* between accuracy and CPU usage on most modern computers.
|
218
|
-
* A granularity of 0ms makes this method act the same as Clock.wait
|
219
|
-
* (i.e. no busy waiting at all, very low CPU usage).
|
220
|
-
*
|
221
|
-
* If +nice+ is true, this function will try to allow other ruby
|
222
|
-
* threads to run during this function. Otherwise, other ruby threads
|
223
|
-
* will probably also be paused. Setting +nice+ to true is only
|
224
|
-
* useful if your application is multithreaded. It's safe (but
|
225
|
-
* pointless) to use this feature for single threaded applications.
|
226
|
-
*
|
227
|
-
* The Rubygame timer system will be initialized when you call this
|
228
|
-
* function, if it has not been already. See Clock.runtime.
|
229
|
-
*
|
230
|
-
*/
|
231
|
-
VALUE rbgm_clock_delay(int argc, VALUE *argv, VALUE module)
|
232
|
-
{
|
233
|
-
rg_init_sdl_timer();
|
234
|
-
|
235
|
-
VALUE vtime, vgran, vnice;
|
236
|
-
|
237
|
-
rb_scan_args(argc,argv,"12", &vtime, &vgran, &vnice);
|
238
|
-
|
239
|
-
int delay = NUM2INT(vtime);
|
240
|
-
if( delay < 0 )
|
241
|
-
{
|
242
|
-
delay = 0;
|
243
|
-
}
|
244
|
-
|
245
|
-
int gran;
|
246
|
-
if( RTEST(vgran) )
|
247
|
-
{
|
248
|
-
gran = NUM2UINT(vgran);
|
249
|
-
if( gran < 0 )
|
250
|
-
{
|
251
|
-
gran = 0;
|
252
|
-
}
|
253
|
-
}
|
254
|
-
else
|
255
|
-
{
|
256
|
-
gran = WORST_CLOCK_ACCURACY;
|
257
|
-
}
|
258
|
-
|
259
|
-
int nice = (vnice == Qtrue) ? 1 : 0;
|
260
|
-
|
261
|
-
return UINT2NUM( accurate_delay(delay, gran, nice) );
|
262
|
-
}
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
/*
|
267
|
-
* call-seq:
|
268
|
-
* runtime -> Integer
|
269
|
-
*
|
270
|
-
* Return the number of milliseconds since the Rubygame timer system
|
271
|
-
* was initialized.
|
272
|
-
*
|
273
|
-
* The Rubygame timer system will be initialized when you call this function,
|
274
|
-
* if it has not been already.
|
275
|
-
*/
|
276
|
-
VALUE rbgm_clock_runtime( VALUE module )
|
277
|
-
{
|
278
|
-
rg_init_sdl_timer();
|
279
|
-
|
280
|
-
return UINT2NUM(SDL_GetTicks());
|
281
|
-
}
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
void Rubygame_Init_Clock()
|
286
|
-
{
|
287
|
-
#if 0
|
288
|
-
mRubygame = rb_define_module("Rubygame");
|
289
|
-
#endif
|
290
|
-
|
291
|
-
/* Clock class */
|
292
|
-
cClock = rb_define_class_under(mRubygame, "Clock", rb_cObject);
|
293
|
-
|
294
|
-
/* Clock class methods */
|
295
|
-
rb_define_singleton_method(cClock, "wait", rbgm_clock_wait, -1);
|
296
|
-
rb_define_singleton_method(cClock, "delay", rbgm_clock_delay, -1);
|
297
|
-
rb_define_singleton_method(cClock, "runtime",rbgm_clock_runtime, 0);
|
298
|
-
|
299
|
-
/* Clock instance methods are defined in clock.rb. */
|
300
|
-
|
301
|
-
}
|
@@ -1,32 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Rubygame -- Ruby code and bindings to SDL to facilitate game creation
|
3
|
-
* Copyright (C) 2004-2009 John Croisant
|
4
|
-
*
|
5
|
-
* This library is free software; you can redistribute it and/or
|
6
|
-
* modify it under the terms of the GNU Lesser General Public
|
7
|
-
* License as published by the Free Software Foundation; either
|
8
|
-
* version 2.1 of the License, or (at your option) any later version.
|
9
|
-
*
|
10
|
-
* This library is distributed in the hope that it will be useful,
|
11
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
-
* Lesser General Public License for more details.
|
14
|
-
*
|
15
|
-
* You should have received a copy of the GNU Lesser General Public
|
16
|
-
* License along with this library; if not, write to the Free Software
|
17
|
-
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
18
|
-
*
|
19
|
-
*/
|
20
|
-
|
21
|
-
#ifndef _RUBYGAME_CLOCK_H
|
22
|
-
#define _RUBYGAME_CLOCK_H
|
23
|
-
|
24
|
-
extern void Rubygame_Init_Clock();
|
25
|
-
|
26
|
-
extern VALUE cClock;
|
27
|
-
|
28
|
-
extern VALUE rbgm_clock_wait(int, VALUE*, VALUE);
|
29
|
-
extern VALUE rbgm_clock_delay(int, VALUE*, VALUE);
|
30
|
-
extern VALUE rbgm_clock_runtime(VALUE);
|
31
|
-
|
32
|
-
#endif
|
@@ -1,760 +0,0 @@
|
|
1
|
-
/*--
|
2
|
-
* Rubygame -- Ruby bindings to SDL to facilitate game creation
|
3
|
-
* Copyright (C) 2004-2007 John Croisant
|
4
|
-
*
|
5
|
-
* This library is free software; you can redistribute it and/or
|
6
|
-
* modify it under the terms of the GNU Lesser General Public
|
7
|
-
* License as published by the Free Software Foundation; either
|
8
|
-
* version 2.1 of the License, or (at your option) any later version.
|
9
|
-
*
|
10
|
-
* This library is distributed in the hope that it will be useful,
|
11
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
-
* Lesser General Public License for more details.
|
14
|
-
*
|
15
|
-
* You should have received a copy of the GNU Lesser General Public
|
16
|
-
* License along with this library; if not, write to the Free Software
|
17
|
-
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
18
|
-
*++
|
19
|
-
*/
|
20
|
-
|
21
|
-
#include "rubygame_shared.h"
|
22
|
-
#include "rubygame_event.h"
|
23
|
-
|
24
|
-
void Rubygame_Init_Event();
|
25
|
-
|
26
|
-
VALUE cEvent;
|
27
|
-
VALUE cActiveEvent;
|
28
|
-
VALUE cKeyDownEvent;
|
29
|
-
VALUE cKeyUpEvent;
|
30
|
-
VALUE cMouseMotionEvent;
|
31
|
-
VALUE cMouseDownEvent;
|
32
|
-
VALUE cMouseUpEvent;
|
33
|
-
VALUE cJoyAxisEvent;
|
34
|
-
VALUE cJoyBallEvent;
|
35
|
-
VALUE cJoyHatEvent;
|
36
|
-
VALUE cJoyDownEvent;
|
37
|
-
VALUE cJoyUpEvent;
|
38
|
-
VALUE cQuitEvent;
|
39
|
-
VALUE cSysWMEvent;
|
40
|
-
VALUE cResizeEvent;
|
41
|
-
VALUE cExposeEvent;
|
42
|
-
VALUE convert_active(Uint8);
|
43
|
-
VALUE convert_keymod(SDLMod);
|
44
|
-
VALUE convert_mousebuttons(Uint8);
|
45
|
-
VALUE rbgm_convert_sdlevent(SDL_Event);
|
46
|
-
VALUE rbgm_queue_getsdl(VALUE);
|
47
|
-
|
48
|
-
/*
|
49
|
-
*--
|
50
|
-
*
|
51
|
-
* SDL Type Ruby type Ruby new() args
|
52
|
-
* ---------------------------------------------------------------------------
|
53
|
-
* SDL_ACTIVEEVENT ActiveEvent gain,state
|
54
|
-
* SDL_KEYDOWN KeyDownEvent key,[mods,...]
|
55
|
-
* SDL_KEYUP KeyUpEvent key,[mods,...]
|
56
|
-
* SDL_MOUSEMOTION MouseMotionEvent [x,y],[xrel,yrel],[buttons,...]
|
57
|
-
* SDL_MOUSEBUTTONDOWN MouseDownEvent [x,y],button
|
58
|
-
* SDL_MOUSEBUTTONUP MouseUpEvent [x,y],button
|
59
|
-
* SDL_JOYAXISMOTION JoyAxisEvent joy,axis,value
|
60
|
-
* SDL_JOYBALLMOTION JoyBallEvent joy,ball,[xrel,yrel]
|
61
|
-
* SDL_JOYHATMOTION JoyHatEvent joy,hat,value
|
62
|
-
* SDL_JOYBUTTONDOWN JoyDownEvent joy,button
|
63
|
-
* SDL_JOYBUTTONUP JoyUpEvent joy,button
|
64
|
-
* SDL_VIDEORESIZE VideoResizeEvent [w,h]
|
65
|
-
* SDL_QUIT QuitEvent (no args)
|
66
|
-
* --------------------------------------------------------------------------
|
67
|
-
*
|
68
|
-
*++
|
69
|
-
*/
|
70
|
-
|
71
|
-
/* Convert info about whether the window has mouse/keyboard focus */
|
72
|
-
VALUE convert_active( Uint8 state )
|
73
|
-
{
|
74
|
-
VALUE array;
|
75
|
-
|
76
|
-
array = rb_ary_new();
|
77
|
-
if(state != 0)
|
78
|
-
{
|
79
|
-
if(state & SDL_APPMOUSEFOCUS)
|
80
|
-
rb_ary_push(array,rb_str_new2("mouse\0"));
|
81
|
-
if(state & SDL_APPINPUTFOCUS)
|
82
|
-
rb_ary_push(array,rb_str_new2("keyboard\0"));
|
83
|
-
if(state & SDL_APPACTIVE)
|
84
|
-
rb_ary_push(array,rb_str_new2("active\0"));
|
85
|
-
}
|
86
|
-
return array;
|
87
|
-
}
|
88
|
-
|
89
|
-
/* Convert an OR'd list of KMODs into a Ruby array of keysyms. */
|
90
|
-
VALUE convert_keymod( SDLMod mods )
|
91
|
-
{
|
92
|
-
VALUE array;
|
93
|
-
|
94
|
-
array = rb_ary_new();
|
95
|
-
if(mods != 0)
|
96
|
-
{
|
97
|
-
/* KEY MODIFIER KEY SYM */
|
98
|
-
if(mods & KMOD_LSHIFT) rb_ary_push(array,INT2NUM( SDLK_LSHIFT ));
|
99
|
-
if(mods & KMOD_RSHIFT) rb_ary_push(array,INT2NUM( SDLK_RSHIFT ));
|
100
|
-
if(mods & KMOD_LCTRL) rb_ary_push(array,INT2NUM( SDLK_LCTRL ));
|
101
|
-
if(mods & KMOD_RCTRL) rb_ary_push(array,INT2NUM( SDLK_RCTRL ));
|
102
|
-
if(mods & KMOD_LALT) rb_ary_push(array,INT2NUM( SDLK_LALT ));
|
103
|
-
if(mods & KMOD_RALT) rb_ary_push(array,INT2NUM( SDLK_RALT ));
|
104
|
-
if(mods & KMOD_LMETA) rb_ary_push(array,INT2NUM( SDLK_LMETA ));
|
105
|
-
if(mods & KMOD_RMETA) rb_ary_push(array,INT2NUM( SDLK_RMETA ));
|
106
|
-
if(mods & KMOD_NUM) rb_ary_push(array,INT2NUM( SDLK_NUMLOCK ));
|
107
|
-
if(mods & KMOD_CAPS) rb_ary_push(array,INT2NUM( SDLK_CAPSLOCK ));
|
108
|
-
if(mods & KMOD_MODE) rb_ary_push(array,INT2NUM( SDLK_MODE ));
|
109
|
-
}
|
110
|
-
return array;
|
111
|
-
}
|
112
|
-
|
113
|
-
/* convert a button state into a list of mouse button sym */
|
114
|
-
VALUE convert_mousebuttons( Uint8 state )
|
115
|
-
{
|
116
|
-
VALUE buttons;
|
117
|
-
|
118
|
-
buttons = rb_ary_new();
|
119
|
-
if(state & SDL_BUTTON(1))
|
120
|
-
rb_ary_push(buttons, INT2NUM(SDL_BUTTON_LEFT));
|
121
|
-
if(state & SDL_BUTTON(2))
|
122
|
-
rb_ary_push(buttons, INT2NUM(SDL_BUTTON_MIDDLE));
|
123
|
-
if(state & SDL_BUTTON(3))
|
124
|
-
rb_ary_push(buttons, INT2NUM(SDL_BUTTON_RIGHT));
|
125
|
-
return buttons;
|
126
|
-
}
|
127
|
-
|
128
|
-
|
129
|
-
#if 0
|
130
|
-
/*
|
131
|
-
* (This method is no longer used, as it depends on unicode enabled in SDL,
|
132
|
-
* and doesn't work for KeyUpEvents)
|
133
|
-
*/
|
134
|
-
/* Convert a unicode char into an ascii string or hex if it is not ascii */
|
135
|
-
VALUE convert_unicode( Uint16 unicode )
|
136
|
-
{
|
137
|
-
char *str;
|
138
|
-
if( unicode < 0x80 && unicode > 0 )
|
139
|
-
asprintf( &str,"%c\0",(char)unicode );
|
140
|
-
else
|
141
|
-
asprintf( &str,"0x%04X\0",unicode );
|
142
|
-
return rb_str_new2(str);
|
143
|
-
}
|
144
|
-
#endif
|
145
|
-
|
146
|
-
|
147
|
-
/*--
|
148
|
-
*
|
149
|
-
* Queue-related functions.
|
150
|
-
*
|
151
|
-
*++
|
152
|
-
*/
|
153
|
-
|
154
|
-
/*--
|
155
|
-
*
|
156
|
-
* call-seq:
|
157
|
-
* rbgm_convert_sdlevent( SDL_Event ) -> Rubygame_Event
|
158
|
-
*
|
159
|
-
* Converts an SDL_Event (C type) into a Rubygame Event of the corresponding
|
160
|
-
* class.
|
161
|
-
*
|
162
|
-
*++
|
163
|
-
*/
|
164
|
-
|
165
|
-
VALUE rbgm_convert_sdlevent( SDL_Event ev )
|
166
|
-
{
|
167
|
-
VALUE new = rb_intern("new"); /* to call new() for any class */
|
168
|
-
|
169
|
-
/*
|
170
|
-
switch for each particular type, call new() for the corresponding
|
171
|
-
Rubygame class, with the proper arguments.
|
172
|
-
*/
|
173
|
-
switch(ev.type)
|
174
|
-
{
|
175
|
-
case SDL_ACTIVEEVENT:
|
176
|
-
/* ActiveEvent.new(gain,state) */
|
177
|
-
return rb_funcall(cActiveEvent,new,2,\
|
178
|
-
ev.active.gain, convert_active(ev.active.state));
|
179
|
-
break;
|
180
|
-
case SDL_KEYDOWN:
|
181
|
-
/* KeyDownEvent.new(keysym,[mods,...]) */
|
182
|
-
return rb_funcall(cKeyDownEvent,new,2,\
|
183
|
-
/* keysym, string version is set in new()*/
|
184
|
-
INT2NUM(ev.key.keysym.sym),\
|
185
|
-
/* convert OR'd list of mods into Array of keysyms */
|
186
|
-
convert_keymod(ev.key.keysym.mod)\
|
187
|
-
);
|
188
|
-
break;
|
189
|
-
case SDL_KEYUP: /* Same as SDL_KEYDOWN */
|
190
|
-
/* KeyUpEvent.new(keysym,[mods,...]) */
|
191
|
-
return rb_funcall(cKeyUpEvent,new,2,\
|
192
|
-
INT2NUM(ev.key.keysym.sym),\
|
193
|
-
convert_keymod(ev.key.keysym.mod));
|
194
|
-
break;
|
195
|
-
case SDL_MOUSEMOTION:;
|
196
|
-
|
197
|
-
/* MouseMotionEvent.new([x,y],[xrel,yrel],[buttons,...]) */
|
198
|
-
return rb_funcall(cMouseMotionEvent,new,3,\
|
199
|
-
rb_ary_new3(2,INT2NUM(ev.motion.x),INT2NUM(ev.motion.y)),\
|
200
|
-
rb_ary_new3(2,INT2NUM(ev.motion.xrel),\
|
201
|
-
INT2NUM(ev.motion.yrel)),\
|
202
|
-
/* Prepare list of buttons from OR'd list */
|
203
|
-
convert_mousebuttons(ev.motion.state));
|
204
|
-
break;
|
205
|
-
case SDL_MOUSEBUTTONDOWN:
|
206
|
-
/* MouseDownEvent.new([x,y],button) */
|
207
|
-
return rb_funcall(cMouseDownEvent,new,2,\
|
208
|
-
rb_ary_new3(2,INT2NUM(ev.button.x),INT2NUM(ev.button.y)),\
|
209
|
-
INT2NUM(ev.button.button));
|
210
|
-
break;
|
211
|
-
case SDL_MOUSEBUTTONUP:
|
212
|
-
/* MouseUpEvent.new([x,y],button) */
|
213
|
-
return rb_funcall(cMouseUpEvent,new,2,\
|
214
|
-
rb_ary_new3(2,INT2NUM(ev.button.x),INT2NUM(ev.button.y)),\
|
215
|
-
INT2NUM(ev.button.button));
|
216
|
-
break;
|
217
|
-
case SDL_JOYAXISMOTION:
|
218
|
-
/* JoyAxisEvent.new(joy,axis,value) */
|
219
|
-
/* Eventually, joy might be a reference to a Joystick instance? */
|
220
|
-
return rb_funcall(cJoyAxisEvent,new,3,\
|
221
|
-
INT2NUM(ev.jaxis.which),INT2NUM(ev.jaxis.axis),\
|
222
|
-
INT2NUM(ev.jaxis.value));
|
223
|
-
break;
|
224
|
-
case SDL_JOYBALLMOTION:
|
225
|
-
/* JoyBallEvent.new(joy,ball,) */
|
226
|
-
/* Eventually, joy might be a reference to a Joystick instance? */
|
227
|
-
return rb_funcall(cJoyBallEvent,new,3,\
|
228
|
-
INT2NUM(ev.jball.which),INT2NUM(ev.jball.ball),
|
229
|
-
rb_ary_new3(2,INT2NUM(ev.jball.xrel),INT2NUM(ev.jball.yrel)));
|
230
|
-
break;
|
231
|
-
case SDL_JOYHATMOTION:
|
232
|
-
/* JoyHatEvent.new(joy,hat,value) */
|
233
|
-
/* Eventually, joy might be a reference to a Joystick instance? */
|
234
|
-
return rb_funcall(cJoyHatEvent,new,3,\
|
235
|
-
INT2NUM(ev.jhat.which),INT2NUM(ev.jhat.hat),\
|
236
|
-
INT2NUM(ev.jhat.value));
|
237
|
-
break;
|
238
|
-
case SDL_JOYBUTTONDOWN:
|
239
|
-
/* JoyDownEvent.new(joy,button) */
|
240
|
-
/* Eventually, joy might be a reference to a Joystick instance? */
|
241
|
-
return rb_funcall(cJoyDownEvent,new,2,\
|
242
|
-
INT2NUM(ev.jbutton.which),INT2NUM(ev.jbutton.button));
|
243
|
-
break;
|
244
|
-
case SDL_JOYBUTTONUP:
|
245
|
-
/* JoyUp.new(joy,button) */
|
246
|
-
/* Eventually, joy might be a reference to a Joystick instance? */
|
247
|
-
return rb_funcall(cJoyUpEvent,new,2,\
|
248
|
-
INT2NUM(ev.jbutton.which),INT2NUM(ev.jbutton.button));
|
249
|
-
break;
|
250
|
-
case SDL_VIDEORESIZE:
|
251
|
-
/* ResizeEvent.new([w,h]) */
|
252
|
-
return rb_funcall(cResizeEvent,new,1,\
|
253
|
-
rb_ary_new3(2,INT2NUM(ev.resize.w),INT2NUM(ev.resize.h)));
|
254
|
-
break;
|
255
|
-
case SDL_VIDEOEXPOSE:
|
256
|
-
/* ExposeEvent.new( ) */
|
257
|
-
return rb_funcall(cExposeEvent,new,0);
|
258
|
-
break;
|
259
|
-
case SDL_QUIT:
|
260
|
-
/* QuitEvent.new( ) */
|
261
|
-
return rb_funcall(cQuitEvent,new,0);
|
262
|
-
break;
|
263
|
-
default:
|
264
|
-
rb_warn("Cannot convert unknown event type (%d).", ev.type);
|
265
|
-
return Qnil;
|
266
|
-
break;
|
267
|
-
}
|
268
|
-
return Qnil; /* should never get here */
|
269
|
-
}
|
270
|
-
|
271
|
-
/*
|
272
|
-
* call-seq:
|
273
|
-
* fetch_sdl_events -> [Event, ...]
|
274
|
-
*
|
275
|
-
* Retrieves all pending events from SDL's event stack and converts them
|
276
|
-
* into Rubygame Event objects. Returns an Array of all the events, in
|
277
|
-
* the order they were read.
|
278
|
-
*
|
279
|
-
* This method is used by the EventQueue class, so don't call it if you are
|
280
|
-
* using EventQueue for event management! If you do, the EventQueue will not
|
281
|
-
* receive all the events, because they will have been removed from SDL's
|
282
|
-
* event stack by this method.
|
283
|
-
*
|
284
|
-
* However, if you aren't using EventQueue, you can safely use this method
|
285
|
-
* to make your own event management system.
|
286
|
-
*/
|
287
|
-
VALUE rbgm_fetchevents(VALUE self)
|
288
|
-
{
|
289
|
-
SDL_Event event;
|
290
|
-
VALUE event_array;
|
291
|
-
|
292
|
-
event_array = rb_ary_new();
|
293
|
-
/* put each in *event until no pending events are in SDL's queue */
|
294
|
-
/* for now, we don't care what type the event in. Filtering comes later */
|
295
|
-
while(SDL_PollEvent(&event)==1)
|
296
|
-
{
|
297
|
-
rb_ary_push(event_array, rbgm_convert_sdlevent(event) );
|
298
|
-
}
|
299
|
-
return event_array;
|
300
|
-
}
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
/* Convert an argument to #enable_key_repeat into an integer
|
305
|
-
* number of milliseconds.
|
306
|
-
*
|
307
|
-
* Argument must be nil, :default, or a numeric greater than 0.001.
|
308
|
-
*/
|
309
|
-
int rg_get_keyrepeat_value( VALUE vvalue, int default_value, char *name )
|
310
|
-
{
|
311
|
-
|
312
|
-
int value;
|
313
|
-
|
314
|
-
if( NIL_P(vvalue) )
|
315
|
-
{
|
316
|
-
return default_value;
|
317
|
-
}
|
318
|
-
|
319
|
-
switch( TYPE(vvalue) ){
|
320
|
-
case T_SYMBOL: {
|
321
|
-
if( make_symbol("default") == vvalue )
|
322
|
-
{
|
323
|
-
return default_value;
|
324
|
-
}
|
325
|
-
else
|
326
|
-
{
|
327
|
-
rb_raise( rb_eArgError, "unsupported symbol '%s' for %s",
|
328
|
-
RSTRING_PTR(rb_inspect(vvalue)), name );
|
329
|
-
}
|
330
|
-
}
|
331
|
-
|
332
|
-
default: {
|
333
|
-
int value = NUM2INT(vvalue) * 1000; /* seconds -> milleseconds */
|
334
|
-
|
335
|
-
if( value < 1 )
|
336
|
-
{
|
337
|
-
rb_raise( rb_eArgError, "%s must be at least 0.001 seconds (got %s)",
|
338
|
-
name, RSTRING_PTR(rb_inspect(vvalue)));
|
339
|
-
}
|
340
|
-
|
341
|
-
return value;
|
342
|
-
}
|
343
|
-
}
|
344
|
-
}
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
/*
|
349
|
-
* call-seq:
|
350
|
-
* enable_key_repeat( delay=:default, interval=:default )
|
351
|
-
*
|
352
|
-
* Enable key repeat, so that additional keyboard release and press
|
353
|
-
* events are automatically generated for as long as the key is held
|
354
|
-
* down. See also #disable_key_repeat.
|
355
|
-
*
|
356
|
-
* delay:: how many seconds to wait before starting to repeat.
|
357
|
-
* Default is 0.5 seconds. (Numeric or :default, optional)
|
358
|
-
*
|
359
|
-
* interval:: how many seconds to wait in between repetitions after
|
360
|
-
* the first one. Default is 0.03 seconds.
|
361
|
-
* (Numeric or :default, optional)
|
362
|
-
*
|
363
|
-
*/
|
364
|
-
VALUE rg_enable_key_repeat(int argc, VALUE *argv, VALUE module)
|
365
|
-
{
|
366
|
-
|
367
|
-
VALUE vdelay, vinterval;
|
368
|
-
rb_scan_args(argc, argv, "02", &vdelay, &vinterval);
|
369
|
-
|
370
|
-
|
371
|
-
int delay = rg_get_keyrepeat_value( vdelay,
|
372
|
-
SDL_DEFAULT_REPEAT_DELAY,
|
373
|
-
"delay" );
|
374
|
-
|
375
|
-
int interval = rg_get_keyrepeat_value( vinterval,
|
376
|
-
SDL_DEFAULT_REPEAT_INTERVAL,
|
377
|
-
"interval" );
|
378
|
-
|
379
|
-
|
380
|
-
int result = SDL_EnableKeyRepeat( delay, interval );
|
381
|
-
|
382
|
-
if (result != 0) {
|
383
|
-
rb_raise(eSDLError, "Could not enable key repeat: %s",
|
384
|
-
SDL_GetError());
|
385
|
-
}
|
386
|
-
|
387
|
-
return Qnil;
|
388
|
-
}
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
/*
|
393
|
-
* call-seq:
|
394
|
-
* disable_key_repeat
|
395
|
-
*
|
396
|
-
* Disable key repeat, undoing the effect of #enable_key_repeat.
|
397
|
-
*
|
398
|
-
*/
|
399
|
-
VALUE rg_disable_key_repeat(VALUE module)
|
400
|
-
{
|
401
|
-
int result = SDL_EnableKeyRepeat( 0, 0 );
|
402
|
-
|
403
|
-
if (result != 0) {
|
404
|
-
rb_raise(eSDLError, "Could not disable key repeat: %s",
|
405
|
-
SDL_GetError());
|
406
|
-
}
|
407
|
-
|
408
|
-
return Qnil;
|
409
|
-
}
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
/*
|
414
|
-
*--
|
415
|
-
* The event documentation is in rubygame/lib/rubygame/event.rb
|
416
|
-
*++
|
417
|
-
*/
|
418
|
-
void Rubygame_Init_Event()
|
419
|
-
{
|
420
|
-
#if 0
|
421
|
-
mRubygame = rb_define_module("Rubygame");
|
422
|
-
#endif
|
423
|
-
|
424
|
-
rb_define_singleton_method(mRubygame, "fetch_sdl_events",rbgm_fetchevents,0);
|
425
|
-
rb_define_singleton_method(mRubygame, "enable_key_repeat",
|
426
|
-
rg_enable_key_repeat, -1);
|
427
|
-
rb_define_singleton_method(mRubygame, "disable_key_repeat",
|
428
|
-
rg_disable_key_repeat, 0);
|
429
|
-
|
430
|
-
cEvent = rb_define_class_under(mRubygame,"Event",rb_cObject);
|
431
|
-
cActiveEvent = rb_define_class_under(mRubygame,"ActiveEvent",cEvent);
|
432
|
-
cKeyDownEvent = rb_define_class_under(mRubygame,"KeyDownEvent",cEvent);
|
433
|
-
cKeyUpEvent = rb_define_class_under(mRubygame,"KeyUpEvent",cEvent);
|
434
|
-
cMouseMotionEvent = rb_define_class_under(mRubygame,"MouseMotionEvent",\
|
435
|
-
cEvent);
|
436
|
-
cMouseDownEvent = rb_define_class_under(mRubygame,"MouseDownEvent",cEvent);
|
437
|
-
cMouseUpEvent = rb_define_class_under(mRubygame,"MouseUpEvent",cEvent);
|
438
|
-
cJoyAxisEvent = rb_define_class_under(mRubygame,"JoyAxisEvent",cEvent);
|
439
|
-
cJoyBallEvent = rb_define_class_under(mRubygame,"JoyBallEvent",cEvent);
|
440
|
-
cJoyHatEvent = rb_define_class_under(mRubygame,"JoyHatEvent",cEvent);
|
441
|
-
cJoyDownEvent = rb_define_class_under(mRubygame,"JoyDownEvent",cEvent);
|
442
|
-
cJoyUpEvent = rb_define_class_under(mRubygame,"JoyUpEvent",cEvent);
|
443
|
-
cQuitEvent = rb_define_class_under(mRubygame,"QuitEvent",cEvent);
|
444
|
-
cResizeEvent = rb_define_class_under(mRubygame,"ResizeEvent",cEvent);
|
445
|
-
cExposeEvent = rb_define_class_under(mRubygame,"ExposeEvent",cEvent);
|
446
|
-
|
447
|
-
/* Event constants */
|
448
|
-
rb_define_const(mRubygame,"NOEVENT",UINT2NUM(SDL_NOEVENT));
|
449
|
-
rb_define_const(mRubygame,"ACTIVEEVENT",UINT2NUM(SDL_ACTIVEEVENT));
|
450
|
-
rb_define_const(mRubygame,"KEYDOWN",UINT2NUM(SDL_KEYDOWN));
|
451
|
-
rb_define_const(mRubygame,"KEYUP",UINT2NUM(SDL_KEYUP));
|
452
|
-
rb_define_const(mRubygame,"MOUSEMOTION",UINT2NUM(SDL_MOUSEMOTION));
|
453
|
-
rb_define_const(mRubygame,"MOUSEBUTTONDOWN",UINT2NUM(SDL_MOUSEBUTTONDOWN));
|
454
|
-
rb_define_const(mRubygame,"MOUSEBUTTONUP",UINT2NUM(SDL_MOUSEBUTTONUP));
|
455
|
-
rb_define_const(mRubygame,"JOYAXISMOTION",UINT2NUM(SDL_JOYAXISMOTION));
|
456
|
-
rb_define_const(mRubygame,"JOYBALLMOTION",UINT2NUM(SDL_JOYBALLMOTION));
|
457
|
-
rb_define_const(mRubygame,"JOYHATMOTION",UINT2NUM(SDL_JOYHATMOTION));
|
458
|
-
rb_define_const(mRubygame,"JOYBUTTONDOWN",UINT2NUM(SDL_JOYBUTTONDOWN));
|
459
|
-
rb_define_const(mRubygame,"JOYBUTTONUP",UINT2NUM(SDL_JOYBUTTONUP));
|
460
|
-
rb_define_const(mRubygame,"QUIT",UINT2NUM(SDL_QUIT));
|
461
|
-
rb_define_const(mRubygame,"SYSWMEVENT",UINT2NUM(SDL_SYSWMEVENT));
|
462
|
-
rb_define_const(mRubygame,"VIDEORESIZE",UINT2NUM(SDL_VIDEORESIZE));
|
463
|
-
rb_define_const(mRubygame,"VIDEOEXPOSE",UINT2NUM(SDL_VIDEOEXPOSE));
|
464
|
-
rb_define_const(mRubygame,"USEREVENT",UINT2NUM(SDL_USEREVENT));
|
465
|
-
|
466
|
-
/* Joystick constants */
|
467
|
-
rb_define_const(mRubygame,"HAT_CENTERED",UINT2NUM(SDL_HAT_CENTERED));
|
468
|
-
rb_define_const(mRubygame,"HAT_UP",UINT2NUM(SDL_HAT_UP));
|
469
|
-
rb_define_const(mRubygame,"HAT_RIGHT",UINT2NUM(SDL_HAT_RIGHT));
|
470
|
-
rb_define_const(mRubygame,"HAT_DOWN",UINT2NUM(SDL_HAT_DOWN));
|
471
|
-
rb_define_const(mRubygame,"HAT_LEFT",UINT2NUM(SDL_HAT_LEFT));
|
472
|
-
rb_define_const(mRubygame,"HAT_RIGHTUP",UINT2NUM(SDL_HAT_RIGHTUP));
|
473
|
-
rb_define_const(mRubygame,"HAT_RIGHTDOWN",UINT2NUM(SDL_HAT_RIGHTDOWN));
|
474
|
-
rb_define_const(mRubygame,"HAT_LEFTUP",UINT2NUM(SDL_HAT_LEFTUP));
|
475
|
-
rb_define_const(mRubygame,"HAT_LEFTDOWN",UINT2NUM(SDL_HAT_LEFTDOWN));
|
476
|
-
|
477
|
-
|
478
|
-
/* Mouse constants */
|
479
|
-
rb_define_const(mRubygame,"MOUSE_LEFT",UINT2NUM(SDL_BUTTON_LEFT));
|
480
|
-
rb_define_const(mRubygame,"MOUSE_MIDDLE",UINT2NUM(SDL_BUTTON_MIDDLE));
|
481
|
-
rb_define_const(mRubygame,"MOUSE_RIGHT",UINT2NUM(SDL_BUTTON_RIGHT));
|
482
|
-
rb_define_const(mRubygame,"MOUSE_LMASK",UINT2NUM(SDL_BUTTON_LMASK));
|
483
|
-
rb_define_const(mRubygame,"MOUSE_MMASK",UINT2NUM(SDL_BUTTON_MMASK));
|
484
|
-
rb_define_const(mRubygame,"MOUSE_RMASK",UINT2NUM(SDL_BUTTON_RMASK));
|
485
|
-
|
486
|
-
/* ASCII key symbols */
|
487
|
-
rb_define_const(mRubygame,"K_UNKNOWN",UINT2NUM(SDLK_UNKNOWN));
|
488
|
-
rb_define_const(mRubygame,"K_FIRST",UINT2NUM(SDLK_FIRST));
|
489
|
-
rb_define_const(mRubygame,"K_BACKSPACE",UINT2NUM(SDLK_BACKSPACE));
|
490
|
-
rb_define_const(mRubygame,"K_TAB",UINT2NUM(SDLK_TAB));
|
491
|
-
rb_define_const(mRubygame,"K_CLEAR",UINT2NUM(SDLK_CLEAR));
|
492
|
-
rb_define_const(mRubygame,"K_RETURN",UINT2NUM(SDLK_RETURN));
|
493
|
-
rb_define_const(mRubygame,"K_PAUSE",UINT2NUM(SDLK_PAUSE));
|
494
|
-
rb_define_const(mRubygame,"K_ESCAPE",UINT2NUM(SDLK_ESCAPE));
|
495
|
-
rb_define_const(mRubygame,"K_SPACE",UINT2NUM(SDLK_SPACE));
|
496
|
-
rb_define_const(mRubygame,"K_EXCLAIM",UINT2NUM(SDLK_EXCLAIM));
|
497
|
-
rb_define_const(mRubygame,"K_QUOTEDBL",UINT2NUM(SDLK_QUOTEDBL));
|
498
|
-
rb_define_const(mRubygame,"K_HASH",UINT2NUM(SDLK_HASH));
|
499
|
-
rb_define_const(mRubygame,"K_DOLLAR",UINT2NUM(SDLK_DOLLAR));
|
500
|
-
rb_define_const(mRubygame,"K_AMPERSAND",UINT2NUM(SDLK_AMPERSAND));
|
501
|
-
rb_define_const(mRubygame,"K_QUOTE",UINT2NUM(SDLK_QUOTE));
|
502
|
-
rb_define_const(mRubygame,"K_LEFTPAREN",UINT2NUM(SDLK_LEFTPAREN));
|
503
|
-
rb_define_const(mRubygame,"K_RIGHTPAREN",UINT2NUM(SDLK_RIGHTPAREN));
|
504
|
-
rb_define_const(mRubygame,"K_ASTERISK",UINT2NUM(SDLK_ASTERISK));
|
505
|
-
rb_define_const(mRubygame,"K_PLUS",UINT2NUM(SDLK_PLUS));
|
506
|
-
rb_define_const(mRubygame,"K_COMMA",UINT2NUM(SDLK_COMMA));
|
507
|
-
rb_define_const(mRubygame,"K_MINUS",UINT2NUM(SDLK_MINUS));
|
508
|
-
rb_define_const(mRubygame,"K_PERIOD",UINT2NUM(SDLK_PERIOD));
|
509
|
-
rb_define_const(mRubygame,"K_SLASH",UINT2NUM(SDLK_SLASH));
|
510
|
-
rb_define_const(mRubygame,"K_0",UINT2NUM(SDLK_0));
|
511
|
-
rb_define_const(mRubygame,"K_1",UINT2NUM(SDLK_1));
|
512
|
-
rb_define_const(mRubygame,"K_2",UINT2NUM(SDLK_2));
|
513
|
-
rb_define_const(mRubygame,"K_3",UINT2NUM(SDLK_3));
|
514
|
-
rb_define_const(mRubygame,"K_4",UINT2NUM(SDLK_4));
|
515
|
-
rb_define_const(mRubygame,"K_5",UINT2NUM(SDLK_5));
|
516
|
-
rb_define_const(mRubygame,"K_6",UINT2NUM(SDLK_6));
|
517
|
-
rb_define_const(mRubygame,"K_7",UINT2NUM(SDLK_7));
|
518
|
-
rb_define_const(mRubygame,"K_8",UINT2NUM(SDLK_8));
|
519
|
-
rb_define_const(mRubygame,"K_9",UINT2NUM(SDLK_9));
|
520
|
-
rb_define_const(mRubygame,"K_COLON",UINT2NUM(SDLK_COLON));
|
521
|
-
rb_define_const(mRubygame,"K_SEMICOLON",UINT2NUM(SDLK_SEMICOLON));
|
522
|
-
rb_define_const(mRubygame,"K_LESS",UINT2NUM(SDLK_LESS));
|
523
|
-
rb_define_const(mRubygame,"K_EQUALS",UINT2NUM(SDLK_EQUALS));
|
524
|
-
rb_define_const(mRubygame,"K_GREATER",UINT2NUM(SDLK_GREATER));
|
525
|
-
rb_define_const(mRubygame,"K_QUESTION",UINT2NUM(SDLK_QUESTION));
|
526
|
-
rb_define_const(mRubygame,"K_AT",UINT2NUM(SDLK_AT));
|
527
|
-
rb_define_const(mRubygame,"K_LEFTBRACKET",UINT2NUM(SDLK_LEFTBRACKET));
|
528
|
-
rb_define_const(mRubygame,"K_BACKSLASH",UINT2NUM(SDLK_BACKSLASH));
|
529
|
-
rb_define_const(mRubygame,"K_RIGHTBRACKET",UINT2NUM(SDLK_RIGHTBRACKET));
|
530
|
-
rb_define_const(mRubygame,"K_CARET",UINT2NUM(SDLK_CARET));
|
531
|
-
rb_define_const(mRubygame,"K_UNDERSCORE",UINT2NUM(SDLK_UNDERSCORE));
|
532
|
-
rb_define_const(mRubygame,"K_BACKQUOTE",UINT2NUM(SDLK_BACKQUOTE));
|
533
|
-
rb_define_const(mRubygame,"K_A",UINT2NUM(SDLK_a));
|
534
|
-
rb_define_const(mRubygame,"K_B",UINT2NUM(SDLK_b));
|
535
|
-
rb_define_const(mRubygame,"K_C",UINT2NUM(SDLK_c));
|
536
|
-
rb_define_const(mRubygame,"K_D",UINT2NUM(SDLK_d));
|
537
|
-
rb_define_const(mRubygame,"K_E",UINT2NUM(SDLK_e));
|
538
|
-
rb_define_const(mRubygame,"K_F",UINT2NUM(SDLK_f));
|
539
|
-
rb_define_const(mRubygame,"K_G",UINT2NUM(SDLK_g));
|
540
|
-
rb_define_const(mRubygame,"K_H",UINT2NUM(SDLK_h));
|
541
|
-
rb_define_const(mRubygame,"K_I",UINT2NUM(SDLK_i));
|
542
|
-
rb_define_const(mRubygame,"K_J",UINT2NUM(SDLK_j));
|
543
|
-
rb_define_const(mRubygame,"K_K",UINT2NUM(SDLK_k));
|
544
|
-
rb_define_const(mRubygame,"K_L",UINT2NUM(SDLK_l));
|
545
|
-
rb_define_const(mRubygame,"K_M",UINT2NUM(SDLK_m));
|
546
|
-
rb_define_const(mRubygame,"K_N",UINT2NUM(SDLK_n));
|
547
|
-
rb_define_const(mRubygame,"K_O",UINT2NUM(SDLK_o));
|
548
|
-
rb_define_const(mRubygame,"K_P",UINT2NUM(SDLK_p));
|
549
|
-
rb_define_const(mRubygame,"K_Q",UINT2NUM(SDLK_q));
|
550
|
-
rb_define_const(mRubygame,"K_R",UINT2NUM(SDLK_r));
|
551
|
-
rb_define_const(mRubygame,"K_S",UINT2NUM(SDLK_s));
|
552
|
-
rb_define_const(mRubygame,"K_T",UINT2NUM(SDLK_t));
|
553
|
-
rb_define_const(mRubygame,"K_U",UINT2NUM(SDLK_u));
|
554
|
-
rb_define_const(mRubygame,"K_V",UINT2NUM(SDLK_v));
|
555
|
-
rb_define_const(mRubygame,"K_W",UINT2NUM(SDLK_w));
|
556
|
-
rb_define_const(mRubygame,"K_X",UINT2NUM(SDLK_x));
|
557
|
-
rb_define_const(mRubygame,"K_Y",UINT2NUM(SDLK_y));
|
558
|
-
rb_define_const(mRubygame,"K_Z",UINT2NUM(SDLK_z));
|
559
|
-
rb_define_const(mRubygame,"K_DELETE",UINT2NUM(SDLK_DELETE));
|
560
|
-
|
561
|
-
|
562
|
-
/* International keyboard symbols */
|
563
|
-
rb_define_const(mRubygame,"K_WORLD_0",UINT2NUM(SDLK_WORLD_0));
|
564
|
-
rb_define_const(mRubygame,"K_WORLD_1",UINT2NUM(SDLK_WORLD_1));
|
565
|
-
rb_define_const(mRubygame,"K_WORLD_2",UINT2NUM(SDLK_WORLD_2));
|
566
|
-
rb_define_const(mRubygame,"K_WORLD_3",UINT2NUM(SDLK_WORLD_3));
|
567
|
-
rb_define_const(mRubygame,"K_WORLD_4",UINT2NUM(SDLK_WORLD_4));
|
568
|
-
rb_define_const(mRubygame,"K_WORLD_5",UINT2NUM(SDLK_WORLD_5));
|
569
|
-
rb_define_const(mRubygame,"K_WORLD_6",UINT2NUM(SDLK_WORLD_6));
|
570
|
-
rb_define_const(mRubygame,"K_WORLD_7",UINT2NUM(SDLK_WORLD_7));
|
571
|
-
rb_define_const(mRubygame,"K_WORLD_8",UINT2NUM(SDLK_WORLD_8));
|
572
|
-
rb_define_const(mRubygame,"K_WORLD_9",UINT2NUM(SDLK_WORLD_9));
|
573
|
-
rb_define_const(mRubygame,"K_WORLD_10",UINT2NUM(SDLK_WORLD_10));
|
574
|
-
rb_define_const(mRubygame,"K_WORLD_11",UINT2NUM(SDLK_WORLD_11));
|
575
|
-
rb_define_const(mRubygame,"K_WORLD_12",UINT2NUM(SDLK_WORLD_12));
|
576
|
-
rb_define_const(mRubygame,"K_WORLD_13",UINT2NUM(SDLK_WORLD_13));
|
577
|
-
rb_define_const(mRubygame,"K_WORLD_14",UINT2NUM(SDLK_WORLD_14));
|
578
|
-
rb_define_const(mRubygame,"K_WORLD_15",UINT2NUM(SDLK_WORLD_15));
|
579
|
-
rb_define_const(mRubygame,"K_WORLD_16",UINT2NUM(SDLK_WORLD_16));
|
580
|
-
rb_define_const(mRubygame,"K_WORLD_17",UINT2NUM(SDLK_WORLD_17));
|
581
|
-
rb_define_const(mRubygame,"K_WORLD_18",UINT2NUM(SDLK_WORLD_18));
|
582
|
-
rb_define_const(mRubygame,"K_WORLD_19",UINT2NUM(SDLK_WORLD_19));
|
583
|
-
rb_define_const(mRubygame,"K_WORLD_20",UINT2NUM(SDLK_WORLD_20));
|
584
|
-
rb_define_const(mRubygame,"K_WORLD_21",UINT2NUM(SDLK_WORLD_21));
|
585
|
-
rb_define_const(mRubygame,"K_WORLD_22",UINT2NUM(SDLK_WORLD_22));
|
586
|
-
rb_define_const(mRubygame,"K_WORLD_23",UINT2NUM(SDLK_WORLD_23));
|
587
|
-
rb_define_const(mRubygame,"K_WORLD_24",UINT2NUM(SDLK_WORLD_24));
|
588
|
-
rb_define_const(mRubygame,"K_WORLD_25",UINT2NUM(SDLK_WORLD_25));
|
589
|
-
rb_define_const(mRubygame,"K_WORLD_26",UINT2NUM(SDLK_WORLD_26));
|
590
|
-
rb_define_const(mRubygame,"K_WORLD_27",UINT2NUM(SDLK_WORLD_27));
|
591
|
-
rb_define_const(mRubygame,"K_WORLD_28",UINT2NUM(SDLK_WORLD_28));
|
592
|
-
rb_define_const(mRubygame,"K_WORLD_29",UINT2NUM(SDLK_WORLD_29));
|
593
|
-
rb_define_const(mRubygame,"K_WORLD_30",UINT2NUM(SDLK_WORLD_30));
|
594
|
-
rb_define_const(mRubygame,"K_WORLD_31",UINT2NUM(SDLK_WORLD_31));
|
595
|
-
rb_define_const(mRubygame,"K_WORLD_32",UINT2NUM(SDLK_WORLD_32));
|
596
|
-
rb_define_const(mRubygame,"K_WORLD_33",UINT2NUM(SDLK_WORLD_33));
|
597
|
-
rb_define_const(mRubygame,"K_WORLD_34",UINT2NUM(SDLK_WORLD_34));
|
598
|
-
rb_define_const(mRubygame,"K_WORLD_35",UINT2NUM(SDLK_WORLD_35));
|
599
|
-
rb_define_const(mRubygame,"K_WORLD_36",UINT2NUM(SDLK_WORLD_36));
|
600
|
-
rb_define_const(mRubygame,"K_WORLD_37",UINT2NUM(SDLK_WORLD_37));
|
601
|
-
rb_define_const(mRubygame,"K_WORLD_38",UINT2NUM(SDLK_WORLD_38));
|
602
|
-
rb_define_const(mRubygame,"K_WORLD_39",UINT2NUM(SDLK_WORLD_39));
|
603
|
-
rb_define_const(mRubygame,"K_WORLD_40",UINT2NUM(SDLK_WORLD_40));
|
604
|
-
rb_define_const(mRubygame,"K_WORLD_41",UINT2NUM(SDLK_WORLD_41));
|
605
|
-
rb_define_const(mRubygame,"K_WORLD_42",UINT2NUM(SDLK_WORLD_42));
|
606
|
-
rb_define_const(mRubygame,"K_WORLD_43",UINT2NUM(SDLK_WORLD_43));
|
607
|
-
rb_define_const(mRubygame,"K_WORLD_44",UINT2NUM(SDLK_WORLD_44));
|
608
|
-
rb_define_const(mRubygame,"K_WORLD_45",UINT2NUM(SDLK_WORLD_45));
|
609
|
-
rb_define_const(mRubygame,"K_WORLD_46",UINT2NUM(SDLK_WORLD_46));
|
610
|
-
rb_define_const(mRubygame,"K_WORLD_47",UINT2NUM(SDLK_WORLD_47));
|
611
|
-
rb_define_const(mRubygame,"K_WORLD_48",UINT2NUM(SDLK_WORLD_48));
|
612
|
-
rb_define_const(mRubygame,"K_WORLD_49",UINT2NUM(SDLK_WORLD_49));
|
613
|
-
rb_define_const(mRubygame,"K_WORLD_50",UINT2NUM(SDLK_WORLD_50));
|
614
|
-
rb_define_const(mRubygame,"K_WORLD_51",UINT2NUM(SDLK_WORLD_51));
|
615
|
-
rb_define_const(mRubygame,"K_WORLD_52",UINT2NUM(SDLK_WORLD_52));
|
616
|
-
rb_define_const(mRubygame,"K_WORLD_53",UINT2NUM(SDLK_WORLD_53));
|
617
|
-
rb_define_const(mRubygame,"K_WORLD_54",UINT2NUM(SDLK_WORLD_54));
|
618
|
-
rb_define_const(mRubygame,"K_WORLD_55",UINT2NUM(SDLK_WORLD_55));
|
619
|
-
rb_define_const(mRubygame,"K_WORLD_56",UINT2NUM(SDLK_WORLD_56));
|
620
|
-
rb_define_const(mRubygame,"K_WORLD_57",UINT2NUM(SDLK_WORLD_57));
|
621
|
-
rb_define_const(mRubygame,"K_WORLD_58",UINT2NUM(SDLK_WORLD_58));
|
622
|
-
rb_define_const(mRubygame,"K_WORLD_59",UINT2NUM(SDLK_WORLD_59));
|
623
|
-
rb_define_const(mRubygame,"K_WORLD_60",UINT2NUM(SDLK_WORLD_60));
|
624
|
-
rb_define_const(mRubygame,"K_WORLD_61",UINT2NUM(SDLK_WORLD_61));
|
625
|
-
rb_define_const(mRubygame,"K_WORLD_62",UINT2NUM(SDLK_WORLD_62));
|
626
|
-
rb_define_const(mRubygame,"K_WORLD_63",UINT2NUM(SDLK_WORLD_63));
|
627
|
-
rb_define_const(mRubygame,"K_WORLD_64",UINT2NUM(SDLK_WORLD_64));
|
628
|
-
rb_define_const(mRubygame,"K_WORLD_65",UINT2NUM(SDLK_WORLD_65));
|
629
|
-
rb_define_const(mRubygame,"K_WORLD_66",UINT2NUM(SDLK_WORLD_66));
|
630
|
-
rb_define_const(mRubygame,"K_WORLD_67",UINT2NUM(SDLK_WORLD_67));
|
631
|
-
rb_define_const(mRubygame,"K_WORLD_68",UINT2NUM(SDLK_WORLD_68));
|
632
|
-
rb_define_const(mRubygame,"K_WORLD_69",UINT2NUM(SDLK_WORLD_69));
|
633
|
-
rb_define_const(mRubygame,"K_WORLD_70",UINT2NUM(SDLK_WORLD_70));
|
634
|
-
rb_define_const(mRubygame,"K_WORLD_71",UINT2NUM(SDLK_WORLD_71));
|
635
|
-
rb_define_const(mRubygame,"K_WORLD_72",UINT2NUM(SDLK_WORLD_72));
|
636
|
-
rb_define_const(mRubygame,"K_WORLD_73",UINT2NUM(SDLK_WORLD_73));
|
637
|
-
rb_define_const(mRubygame,"K_WORLD_74",UINT2NUM(SDLK_WORLD_74));
|
638
|
-
rb_define_const(mRubygame,"K_WORLD_75",UINT2NUM(SDLK_WORLD_75));
|
639
|
-
rb_define_const(mRubygame,"K_WORLD_76",UINT2NUM(SDLK_WORLD_76));
|
640
|
-
rb_define_const(mRubygame,"K_WORLD_77",UINT2NUM(SDLK_WORLD_77));
|
641
|
-
rb_define_const(mRubygame,"K_WORLD_78",UINT2NUM(SDLK_WORLD_78));
|
642
|
-
rb_define_const(mRubygame,"K_WORLD_79",UINT2NUM(SDLK_WORLD_79));
|
643
|
-
rb_define_const(mRubygame,"K_WORLD_80",UINT2NUM(SDLK_WORLD_80));
|
644
|
-
rb_define_const(mRubygame,"K_WORLD_81",UINT2NUM(SDLK_WORLD_81));
|
645
|
-
rb_define_const(mRubygame,"K_WORLD_82",UINT2NUM(SDLK_WORLD_82));
|
646
|
-
rb_define_const(mRubygame,"K_WORLD_83",UINT2NUM(SDLK_WORLD_83));
|
647
|
-
rb_define_const(mRubygame,"K_WORLD_84",UINT2NUM(SDLK_WORLD_84));
|
648
|
-
rb_define_const(mRubygame,"K_WORLD_85",UINT2NUM(SDLK_WORLD_85));
|
649
|
-
rb_define_const(mRubygame,"K_WORLD_86",UINT2NUM(SDLK_WORLD_86));
|
650
|
-
rb_define_const(mRubygame,"K_WORLD_87",UINT2NUM(SDLK_WORLD_87));
|
651
|
-
rb_define_const(mRubygame,"K_WORLD_88",UINT2NUM(SDLK_WORLD_88));
|
652
|
-
rb_define_const(mRubygame,"K_WORLD_89",UINT2NUM(SDLK_WORLD_89));
|
653
|
-
rb_define_const(mRubygame,"K_WORLD_90",UINT2NUM(SDLK_WORLD_90));
|
654
|
-
rb_define_const(mRubygame,"K_WORLD_91",UINT2NUM(SDLK_WORLD_91));
|
655
|
-
rb_define_const(mRubygame,"K_WORLD_92",UINT2NUM(SDLK_WORLD_92));
|
656
|
-
rb_define_const(mRubygame,"K_WORLD_93",UINT2NUM(SDLK_WORLD_93));
|
657
|
-
rb_define_const(mRubygame,"K_WORLD_94",UINT2NUM(SDLK_WORLD_94));
|
658
|
-
rb_define_const(mRubygame,"K_WORLD_95",UINT2NUM(SDLK_WORLD_95));
|
659
|
-
|
660
|
-
|
661
|
-
/* Numeric keypad symbols */
|
662
|
-
rb_define_const(mRubygame,"K_KP0",UINT2NUM(SDLK_KP0));
|
663
|
-
rb_define_const(mRubygame,"K_KP1",UINT2NUM(SDLK_KP1));
|
664
|
-
rb_define_const(mRubygame,"K_KP2",UINT2NUM(SDLK_KP2));
|
665
|
-
rb_define_const(mRubygame,"K_KP3",UINT2NUM(SDLK_KP3));
|
666
|
-
rb_define_const(mRubygame,"K_KP4",UINT2NUM(SDLK_KP4));
|
667
|
-
rb_define_const(mRubygame,"K_KP5",UINT2NUM(SDLK_KP5));
|
668
|
-
rb_define_const(mRubygame,"K_KP6",UINT2NUM(SDLK_KP6));
|
669
|
-
rb_define_const(mRubygame,"K_KP7",UINT2NUM(SDLK_KP7));
|
670
|
-
rb_define_const(mRubygame,"K_KP8",UINT2NUM(SDLK_KP8));
|
671
|
-
rb_define_const(mRubygame,"K_KP9",UINT2NUM(SDLK_KP9));
|
672
|
-
rb_define_const(mRubygame,"K_KP_PERIOD",UINT2NUM(SDLK_KP_PERIOD));
|
673
|
-
rb_define_const(mRubygame,"K_KP_DIVIDE",UINT2NUM(SDLK_KP_DIVIDE));
|
674
|
-
rb_define_const(mRubygame,"K_KP_MULTIPLY",UINT2NUM(SDLK_KP_MULTIPLY));
|
675
|
-
rb_define_const(mRubygame,"K_KP_MINUS",UINT2NUM(SDLK_KP_MINUS));
|
676
|
-
rb_define_const(mRubygame,"K_KP_PLUS",UINT2NUM(SDLK_KP_PLUS));
|
677
|
-
rb_define_const(mRubygame,"K_KP_ENTER",UINT2NUM(SDLK_KP_ENTER));
|
678
|
-
rb_define_const(mRubygame,"K_KP_EQUALS",UINT2NUM(SDLK_KP_EQUALS));
|
679
|
-
|
680
|
-
|
681
|
-
/* Arrows + Home/End pad */
|
682
|
-
rb_define_const(mRubygame,"K_UP",UINT2NUM(SDLK_UP));
|
683
|
-
rb_define_const(mRubygame,"K_DOWN",UINT2NUM(SDLK_DOWN));
|
684
|
-
rb_define_const(mRubygame,"K_RIGHT",UINT2NUM(SDLK_RIGHT));
|
685
|
-
rb_define_const(mRubygame,"K_LEFT",UINT2NUM(SDLK_LEFT));
|
686
|
-
rb_define_const(mRubygame,"K_INSERT",UINT2NUM(SDLK_INSERT));
|
687
|
-
rb_define_const(mRubygame,"K_HOME",UINT2NUM(SDLK_HOME));
|
688
|
-
rb_define_const(mRubygame,"K_END",UINT2NUM(SDLK_END));
|
689
|
-
rb_define_const(mRubygame,"K_PAGEUP",UINT2NUM(SDLK_PAGEUP));
|
690
|
-
rb_define_const(mRubygame,"K_PAGEDOWN",UINT2NUM(SDLK_PAGEDOWN));
|
691
|
-
|
692
|
-
|
693
|
-
/* Function keys */
|
694
|
-
rb_define_const(mRubygame,"K_F1",UINT2NUM(SDLK_F1));
|
695
|
-
rb_define_const(mRubygame,"K_F2",UINT2NUM(SDLK_F2));
|
696
|
-
rb_define_const(mRubygame,"K_F3",UINT2NUM(SDLK_F3));
|
697
|
-
rb_define_const(mRubygame,"K_F4",UINT2NUM(SDLK_F4));
|
698
|
-
rb_define_const(mRubygame,"K_F5",UINT2NUM(SDLK_F5));
|
699
|
-
rb_define_const(mRubygame,"K_F6",UINT2NUM(SDLK_F6));
|
700
|
-
rb_define_const(mRubygame,"K_F7",UINT2NUM(SDLK_F7));
|
701
|
-
rb_define_const(mRubygame,"K_F8",UINT2NUM(SDLK_F8));
|
702
|
-
rb_define_const(mRubygame,"K_F9",UINT2NUM(SDLK_F9));
|
703
|
-
rb_define_const(mRubygame,"K_F10",UINT2NUM(SDLK_F10));
|
704
|
-
rb_define_const(mRubygame,"K_F11",UINT2NUM(SDLK_F11));
|
705
|
-
rb_define_const(mRubygame,"K_F12",UINT2NUM(SDLK_F12));
|
706
|
-
rb_define_const(mRubygame,"K_F13",UINT2NUM(SDLK_F13));
|
707
|
-
rb_define_const(mRubygame,"K_F14",UINT2NUM(SDLK_F14));
|
708
|
-
rb_define_const(mRubygame,"K_F15",UINT2NUM(SDLK_F15));
|
709
|
-
|
710
|
-
|
711
|
-
/* Key state modifier keys */
|
712
|
-
rb_define_const(mRubygame,"K_NUMLOCK",UINT2NUM(SDLK_NUMLOCK));
|
713
|
-
rb_define_const(mRubygame,"K_CAPSLOCK",UINT2NUM(SDLK_CAPSLOCK));
|
714
|
-
rb_define_const(mRubygame,"K_SCROLLOCK",UINT2NUM(SDLK_SCROLLOCK));
|
715
|
-
rb_define_const(mRubygame,"K_RSHIFT",UINT2NUM(SDLK_RSHIFT));
|
716
|
-
rb_define_const(mRubygame,"K_LSHIFT",UINT2NUM(SDLK_LSHIFT));
|
717
|
-
rb_define_const(mRubygame,"K_RCTRL",UINT2NUM(SDLK_RCTRL));
|
718
|
-
rb_define_const(mRubygame,"K_LCTRL",UINT2NUM(SDLK_LCTRL));
|
719
|
-
rb_define_const(mRubygame,"K_RALT",UINT2NUM(SDLK_RALT));
|
720
|
-
rb_define_const(mRubygame,"K_LALT",UINT2NUM(SDLK_LALT));
|
721
|
-
rb_define_const(mRubygame,"K_RMETA",UINT2NUM(SDLK_RMETA));
|
722
|
-
rb_define_const(mRubygame,"K_LMETA",UINT2NUM(SDLK_LMETA));
|
723
|
-
rb_define_const(mRubygame,"K_LSUPER",UINT2NUM(SDLK_LSUPER));
|
724
|
-
rb_define_const(mRubygame,"K_RSUPER",UINT2NUM(SDLK_RSUPER));
|
725
|
-
rb_define_const(mRubygame,"K_MODE",UINT2NUM(SDLK_MODE));
|
726
|
-
|
727
|
-
|
728
|
-
/* Miscellaneous keys */
|
729
|
-
rb_define_const(mRubygame,"K_HELP",UINT2NUM(SDLK_HELP));
|
730
|
-
rb_define_const(mRubygame,"K_PRINT",UINT2NUM(SDLK_PRINT));
|
731
|
-
rb_define_const(mRubygame,"K_SYSREQ",UINT2NUM(SDLK_SYSREQ));
|
732
|
-
rb_define_const(mRubygame,"K_BREAK",UINT2NUM(SDLK_BREAK));
|
733
|
-
rb_define_const(mRubygame,"K_MENU",UINT2NUM(SDLK_MENU));
|
734
|
-
rb_define_const(mRubygame,"K_POWER",UINT2NUM(SDLK_POWER));
|
735
|
-
rb_define_const(mRubygame,"K_EURO",UINT2NUM(SDLK_EURO));
|
736
|
-
rb_define_const(mRubygame,"K_LAST",UINT2NUM(SDLK_LAST));
|
737
|
-
|
738
|
-
|
739
|
-
#if 0
|
740
|
-
/* key mods */
|
741
|
-
/* rb_define_const(mRubygame,"K_MOD_NONE",UINT2NUM(KMOD_NONE)); */
|
742
|
-
/* rb_define_const(mRubygame,"K_MOD_LSHIFT",UINT2NUM(KMOD_LSHIFT)); */
|
743
|
-
/* rb_define_const(mRubygame,"K_MOD_RSHIFT",UINT2NUM(KMOD_RSHIFT)); */
|
744
|
-
/* rb_define_const(mRubygame,"K_MOD_LCTRL",UINT2NUM(KMOD_LCTRL)); */
|
745
|
-
/* rb_define_const(mRubygame,"K_MOD_RCTRL",UINT2NUM(KMOD_RCTRL)); */
|
746
|
-
/* rb_define_const(mRubygame,"K_MOD_LALT",UINT2NUM(KMOD_LALT)); */
|
747
|
-
/* rb_define_const(mRubygame,"K_MOD_RALT",UINT2NUM(KMOD_RALT)); */
|
748
|
-
/* rb_define_const(mRubygame,"K_MOD_LMETA",UINT2NUM(KMOD_LMETA)); */
|
749
|
-
/* rb_define_const(mRubygame,"K_MOD_RMETA",UINT2NUM(KMOD_RMETA)); */
|
750
|
-
/* rb_define_const(mRubygame,"K_MOD_NUM",UINT2NUM(KMOD_NUM)); */
|
751
|
-
/* rb_define_const(mRubygame,"K_MOD_CAPS",UINT2NUM(KMOD_CAPS)); */
|
752
|
-
/* rb_define_const(mRubygame,"K_MOD_MODE",UINT2NUM(KMOD_MODE)); */
|
753
|
-
/* rb_define_const(mRubygame,"K_MOD_RESERVED",UINT2NUM(KMOD_RESERVED)); */
|
754
|
-
|
755
|
-
/* rb_define_const(mRubygame,"K_MOD_CTRL",UINT2NUM(KMOD_CTRL)); */
|
756
|
-
/* rb_define_const(mRubygame,"K_MOD_SHIFT",UINT2NUM(KMOD_SHIFT)); */
|
757
|
-
/* rb_define_const(mRubygame,"K_MOD_ALT",UINT2NUM(KMOD_ALT)); */
|
758
|
-
/* rb_define_const(mRubygame,"K_MOD_META",UINT2NUM(KMOD_META)); */
|
759
|
-
#endif
|
760
|
-
}
|