gosu 0.15.2 → 1.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/dependencies/SDL/include/SDL.h +138 -0
  3. data/dependencies/SDL/include/SDL_assert.h +293 -0
  4. data/dependencies/SDL/include/SDL_atomic.h +295 -0
  5. data/dependencies/SDL/include/SDL_audio.h +859 -0
  6. data/dependencies/SDL/include/SDL_bits.h +121 -0
  7. data/dependencies/SDL/include/SDL_blendmode.h +123 -0
  8. data/dependencies/SDL/include/SDL_clipboard.h +71 -0
  9. data/dependencies/SDL/include/SDL_config.h +55 -0
  10. data/dependencies/SDL/include/SDL_config_android.h +182 -0
  11. data/dependencies/SDL/include/SDL_config_iphoneos.h +207 -0
  12. data/dependencies/SDL/include/SDL_config_macosx.h +266 -0
  13. data/dependencies/SDL/include/SDL_config_minimal.h +85 -0
  14. data/dependencies/SDL/include/SDL_config_os2.h +188 -0
  15. data/dependencies/SDL/include/SDL_config_pandora.h +135 -0
  16. data/dependencies/SDL/include/SDL_config_psp.h +165 -0
  17. data/dependencies/SDL/include/SDL_config_windows.h +288 -0
  18. data/dependencies/SDL/include/SDL_config_winrt.h +243 -0
  19. data/dependencies/SDL/include/SDL_config_wiz.h +149 -0
  20. data/dependencies/SDL/include/SDL_copying.h +20 -0
  21. data/dependencies/SDL/include/SDL_cpuinfo.h +299 -0
  22. data/dependencies/SDL/include/SDL_egl.h +1676 -0
  23. data/dependencies/SDL/include/SDL_endian.h +263 -0
  24. data/dependencies/SDL/include/SDL_error.h +112 -0
  25. data/dependencies/SDL/include/SDL_events.h +827 -0
  26. data/dependencies/SDL/include/SDL_filesystem.h +136 -0
  27. data/dependencies/SDL/include/SDL_gamecontroller.h +541 -0
  28. data/dependencies/SDL/include/SDL_gesture.h +87 -0
  29. data/dependencies/SDL/include/SDL_haptic.h +1247 -0
  30. data/dependencies/SDL/include/SDL_hints.h +1578 -0
  31. data/dependencies/SDL/include/SDL_joystick.h +499 -0
  32. data/dependencies/SDL/include/SDL_keyboard.h +217 -0
  33. data/dependencies/SDL/include/SDL_keycode.h +351 -0
  34. data/dependencies/SDL/include/SDL_loadso.h +81 -0
  35. data/dependencies/SDL/include/SDL_locale.h +101 -0
  36. data/dependencies/SDL/include/SDL_log.h +211 -0
  37. data/dependencies/SDL/include/SDL_main.h +180 -0
  38. data/dependencies/SDL/include/SDL_messagebox.h +146 -0
  39. data/dependencies/SDL/include/SDL_metal.h +117 -0
  40. data/dependencies/SDL/include/SDL_misc.h +75 -0
  41. data/dependencies/SDL/include/SDL_mouse.h +302 -0
  42. data/dependencies/SDL/include/SDL_mutex.h +251 -0
  43. data/dependencies/SDL/include/SDL_name.h +33 -0
  44. data/dependencies/SDL/include/SDL_opengl.h +2183 -0
  45. data/dependencies/SDL/include/SDL_opengl_glext.h +11180 -0
  46. data/dependencies/SDL/include/SDL_opengles.h +39 -0
  47. data/dependencies/SDL/include/SDL_opengles2.h +52 -0
  48. data/dependencies/SDL/include/SDL_opengles2_gl2.h +621 -0
  49. data/dependencies/SDL/include/SDL_opengles2_gl2ext.h +2050 -0
  50. data/dependencies/SDL/include/SDL_opengles2_gl2platform.h +30 -0
  51. data/dependencies/SDL/include/SDL_opengles2_khrplatform.h +282 -0
  52. data/dependencies/SDL/include/SDL_pixels.h +479 -0
  53. data/dependencies/SDL/include/SDL_platform.h +198 -0
  54. data/dependencies/SDL/include/SDL_power.h +75 -0
  55. data/dependencies/SDL/include/SDL_quit.h +58 -0
  56. data/dependencies/SDL/include/SDL_rect.h +174 -0
  57. data/dependencies/SDL/include/SDL_render.h +1158 -0
  58. data/dependencies/SDL/include/SDL_revision.h +2 -0
  59. data/dependencies/SDL/include/SDL_rwops.h +283 -0
  60. data/dependencies/SDL/include/SDL_scancode.h +413 -0
  61. data/dependencies/SDL/include/SDL_sensor.h +267 -0
  62. data/dependencies/SDL/include/SDL_shape.h +144 -0
  63. data/dependencies/SDL/include/SDL_stdinc.h +647 -0
  64. data/dependencies/SDL/include/SDL_surface.h +563 -0
  65. data/dependencies/SDL/include/SDL_system.h +325 -0
  66. data/dependencies/SDL/include/SDL_syswm.h +354 -0
  67. data/dependencies/SDL/include/SDL_test.h +69 -0
  68. data/dependencies/SDL/include/SDL_test_assert.h +105 -0
  69. data/dependencies/SDL/include/SDL_test_common.h +218 -0
  70. data/dependencies/SDL/include/SDL_test_compare.h +69 -0
  71. data/dependencies/SDL/include/SDL_test_crc32.h +124 -0
  72. data/dependencies/SDL/include/SDL_test_font.h +81 -0
  73. data/dependencies/SDL/include/SDL_test_fuzzer.h +384 -0
  74. data/dependencies/SDL/include/SDL_test_harness.h +134 -0
  75. data/dependencies/SDL/include/SDL_test_images.h +78 -0
  76. data/dependencies/SDL/include/SDL_test_log.h +67 -0
  77. data/dependencies/SDL/include/SDL_test_md5.h +129 -0
  78. data/dependencies/SDL/include/SDL_test_memory.h +63 -0
  79. data/dependencies/SDL/include/SDL_test_random.h +115 -0
  80. data/dependencies/SDL/include/SDL_thread.h +366 -0
  81. data/dependencies/SDL/include/SDL_timer.h +115 -0
  82. data/dependencies/SDL/include/SDL_touch.h +102 -0
  83. data/dependencies/SDL/include/SDL_types.h +29 -0
  84. data/dependencies/SDL/include/SDL_version.h +162 -0
  85. data/dependencies/SDL/include/SDL_video.h +1282 -0
  86. data/dependencies/SDL/include/SDL_vulkan.h +276 -0
  87. data/dependencies/SDL/include/begin_code.h +166 -0
  88. data/dependencies/SDL/include/close_code.h +40 -0
  89. data/dependencies/SDL/lib/x64/libSDL2.dll.a +0 -0
  90. data/dependencies/SDL/lib/x86/libSDL2.dll.a +0 -0
  91. data/dependencies/SDL_sound/SDL_sound.c +795 -0
  92. data/dependencies/SDL_sound/SDL_sound.h +725 -0
  93. data/dependencies/SDL_sound/SDL_sound_aiff.c +537 -0
  94. data/dependencies/SDL_sound/SDL_sound_au.c +352 -0
  95. data/dependencies/SDL_sound/SDL_sound_coreaudio.c +747 -0
  96. data/dependencies/SDL_sound/SDL_sound_flac.c +182 -0
  97. data/dependencies/SDL_sound/SDL_sound_internal.h +304 -0
  98. data/dependencies/SDL_sound/SDL_sound_modplug.c +228 -0
  99. data/dependencies/SDL_sound/SDL_sound_mp3.c +184 -0
  100. data/dependencies/SDL_sound/SDL_sound_raw.c +164 -0
  101. data/dependencies/SDL_sound/SDL_sound_shn.c +1309 -0
  102. data/dependencies/SDL_sound/SDL_sound_voc.c +550 -0
  103. data/dependencies/SDL_sound/SDL_sound_vorbis.c +223 -0
  104. data/dependencies/SDL_sound/SDL_sound_wav.c +783 -0
  105. data/dependencies/SDL_sound/dr_flac.h +5906 -0
  106. data/dependencies/SDL_sound/dr_mp3.h +2832 -0
  107. data/dependencies/SDL_sound/libmodplug/fastmix.c +1748 -0
  108. data/dependencies/SDL_sound/libmodplug/libmodplug.h +1001 -0
  109. data/dependencies/SDL_sound/libmodplug/load_669.c +188 -0
  110. data/dependencies/SDL_sound/libmodplug/load_abc.c +4725 -0
  111. data/dependencies/SDL_sound/libmodplug/load_amf.c +403 -0
  112. data/dependencies/SDL_sound/libmodplug/load_ams.c +587 -0
  113. data/dependencies/SDL_sound/libmodplug/load_dbm.c +357 -0
  114. data/dependencies/SDL_sound/libmodplug/load_dmf.c +531 -0
  115. data/dependencies/SDL_sound/libmodplug/load_dsm.c +232 -0
  116. data/dependencies/SDL_sound/libmodplug/load_far.c +253 -0
  117. data/dependencies/SDL_sound/libmodplug/load_it.c +796 -0
  118. data/dependencies/SDL_sound/libmodplug/load_mdl.c +488 -0
  119. data/dependencies/SDL_sound/libmodplug/load_med.c +757 -0
  120. data/dependencies/SDL_sound/libmodplug/load_mid.c +1405 -0
  121. data/dependencies/SDL_sound/libmodplug/load_mod.c +269 -0
  122. data/dependencies/SDL_sound/libmodplug/load_mt2.c +546 -0
  123. data/dependencies/SDL_sound/libmodplug/load_mtm.c +142 -0
  124. data/dependencies/SDL_sound/libmodplug/load_okt.c +192 -0
  125. data/dependencies/SDL_sound/libmodplug/load_pat.c +1143 -0
  126. data/dependencies/SDL_sound/libmodplug/load_pat.h +25 -0
  127. data/dependencies/SDL_sound/libmodplug/load_psm.c +350 -0
  128. data/dependencies/SDL_sound/libmodplug/load_ptm.c +204 -0
  129. data/dependencies/SDL_sound/libmodplug/load_s3m.c +325 -0
  130. data/dependencies/SDL_sound/libmodplug/load_stm.c +180 -0
  131. data/dependencies/SDL_sound/libmodplug/load_ult.c +206 -0
  132. data/dependencies/SDL_sound/libmodplug/load_umx.c +51 -0
  133. data/dependencies/SDL_sound/libmodplug/load_xm.c +554 -0
  134. data/dependencies/SDL_sound/libmodplug/mmcmp.c +382 -0
  135. data/dependencies/SDL_sound/libmodplug/modplug.c +170 -0
  136. data/dependencies/SDL_sound/libmodplug/modplug.h +90 -0
  137. data/dependencies/SDL_sound/libmodplug/snd_dsp.c +301 -0
  138. data/dependencies/SDL_sound/libmodplug/snd_flt.c +63 -0
  139. data/dependencies/SDL_sound/libmodplug/snd_fx.c +2350 -0
  140. data/dependencies/SDL_sound/libmodplug/sndfile.c +1169 -0
  141. data/dependencies/SDL_sound/libmodplug/sndmix.c +1034 -0
  142. data/dependencies/SDL_sound/libmodplug/tables.h +371 -0
  143. data/{src/stb_vorbis.c → dependencies/SDL_sound/stb_vorbis.h} +143 -78
  144. data/dependencies/al_soft/AL/al.h +655 -0
  145. data/dependencies/al_soft/AL/alc.h +270 -0
  146. data/dependencies/al_soft/AL/alext.h +585 -0
  147. data/dependencies/al_soft/AL/efx-creative.h +3 -0
  148. data/dependencies/al_soft/AL/efx-presets.h +402 -0
  149. data/dependencies/al_soft/AL/efx.h +762 -0
  150. data/dependencies/al_soft/x64/libOpenAL32.dll.a +0 -0
  151. data/dependencies/al_soft/x86/libOpenAL32.dll.a +0 -0
  152. data/{src → dependencies/stb}/stb_image.h +330 -127
  153. data/{src → dependencies/stb}/stb_image_write.h +156 -85
  154. data/{src → dependencies/stb}/stb_truetype.h +192 -69
  155. data/{src → dependencies/utf8proc}/utf8proc.c +0 -0
  156. data/{src → dependencies/utf8proc}/utf8proc.h +0 -0
  157. data/{src → dependencies/utf8proc}/utf8proc_data.h +0 -0
  158. data/ext/gosu/extconf.rb +56 -22
  159. data/{Gosu → include/Gosu}/Audio.hpp +6 -8
  160. data/{Gosu → include/Gosu}/AutoLink.hpp +0 -0
  161. data/include/Gosu/Bitmap.hpp +100 -0
  162. data/{Gosu → include/Gosu}/Buttons.hpp +94 -35
  163. data/{Gosu → include/Gosu}/Channel.h +0 -0
  164. data/{Gosu → include/Gosu}/Color.h +0 -0
  165. data/{Gosu → include/Gosu}/Color.hpp +0 -0
  166. data/{Gosu → include/Gosu}/Directories.hpp +0 -0
  167. data/{Gosu → include/Gosu}/Font.h +0 -0
  168. data/{Gosu → include/Gosu}/Font.hpp +0 -0
  169. data/{Gosu → include/Gosu}/Fwd.hpp +0 -0
  170. data/{Gosu → include/Gosu}/Gosu.h +3 -0
  171. data/{Gosu → include/Gosu}/Gosu.hpp +0 -0
  172. data/{Gosu → include/Gosu}/Graphics.hpp +0 -0
  173. data/{Gosu → include/Gosu}/GraphicsBase.hpp +0 -0
  174. data/{Gosu → include/Gosu}/IO.hpp +0 -0
  175. data/{Gosu → include/Gosu}/Image.h +0 -0
  176. data/{Gosu → include/Gosu}/Image.hpp +7 -6
  177. data/{Gosu → include/Gosu}/ImageData.hpp +0 -0
  178. data/{Gosu → include/Gosu}/Input.hpp +30 -15
  179. data/{Gosu → include/Gosu}/Inspection.hpp +0 -0
  180. data/{Gosu → include/Gosu}/Math.hpp +0 -0
  181. data/{Gosu → include/Gosu}/Platform.hpp +0 -0
  182. data/{Gosu → include/Gosu}/Sample.h +0 -0
  183. data/{Gosu → include/Gosu}/Song.h +0 -0
  184. data/{Gosu → include/Gosu}/Text.hpp +0 -0
  185. data/{Gosu → include/Gosu}/TextInput.h +0 -0
  186. data/{Gosu → include/Gosu}/TextInput.hpp +0 -0
  187. data/{Gosu → include/Gosu}/Timing.hpp +0 -0
  188. data/{Gosu → include/Gosu}/Utility.hpp +1 -1
  189. data/{Gosu → include/Gosu}/Version.hpp +0 -0
  190. data/{Gosu → include/Gosu}/Window.h +2 -0
  191. data/{Gosu → include/Gosu}/Window.hpp +21 -13
  192. data/lib/OpenAL32.dll +0 -0
  193. data/lib/SDL2.dll +0 -0
  194. data/lib/gosu.rb +0 -3
  195. data/lib/gosu/patches.rb +0 -9
  196. data/lib/gosu/swig_patches.rb +3 -2
  197. data/lib/libmpg123.dll +0 -0
  198. data/lib/libsndfile.dll +0 -0
  199. data/lib64/OpenAL32.dll +0 -0
  200. data/lib64/SDL2.dll +0 -0
  201. data/lib64/libmpg123.dll +0 -0
  202. data/lib64/libsndfile.dll +0 -0
  203. data/rdoc/gosu.rb +95 -20
  204. data/src/Audio.cpp +50 -224
  205. data/src/AudioFile.hpp +17 -37
  206. data/src/AudioFileAudioToolbox.cpp +237 -0
  207. data/src/AudioFileSDLSound.cpp +147 -0
  208. data/src/AudioImpl.cpp +3 -12
  209. data/src/AudioImpl.hpp +3 -1
  210. data/src/Bitmap.cpp +85 -83
  211. data/src/BitmapIO.cpp +52 -58
  212. data/src/Constants.cpp +80 -33
  213. data/src/Font.cpp +3 -1
  214. data/src/GosuWrapper.cpp +19 -0
  215. data/src/Graphics.cpp +7 -4
  216. data/src/Image.cpp +13 -16
  217. data/src/Input.cpp +408 -159
  218. data/src/LargeImageData.cpp +1 -1
  219. data/src/MarkupParser.cpp +2 -1
  220. data/src/RubyGosu.cxx +349 -83
  221. data/src/RubyGosu.h +4 -2
  222. data/src/TexChunk.cpp +1 -1
  223. data/src/TextBuilder.cpp +3 -1
  224. data/src/Texture.cpp +1 -1
  225. data/src/TrueTypeFont.cpp +1 -1
  226. data/src/Utility.cpp +11 -7
  227. data/src/Window.cpp +30 -39
  228. data/src/WindowWrapper.cpp +28 -0
  229. metadata +207 -52
  230. data/Gosu/Bitmap.hpp +0 -113
  231. data/src/AudioToolboxFile.hpp +0 -210
  232. data/src/OggFile.hpp +0 -92
  233. data/src/SndFile.hpp +0 -174
  234. data/src/WinMain.cpp +0 -64
@@ -185,7 +185,7 @@ Gosu::Bitmap Gosu::LargeImageData::to_bitmap() const
185
185
  int x = 0;
186
186
  for (int tx = 0; tx < tiles_x; ++tx) {
187
187
  ImageData& tile = *tiles[ty * tiles_x + tx];
188
- bitmap.insert(tile.to_bitmap(), x, y);
188
+ bitmap.insert(x, y, tile.to_bitmap());
189
189
  x += tile.width();
190
190
  }
191
191
  y += tiles[ty * tiles_x]->height();
@@ -1,6 +1,7 @@
1
1
  #include "MarkupParser.hpp"
2
2
  #include <Gosu/Utility.hpp>
3
- #include "utf8proc.h"
3
+
4
+ #include <utf8proc.h>
4
5
 
5
6
  #include <cstring>
6
7
  using namespace std;
@@ -1,6 +1,6 @@
1
1
  /* ----------------------------------------------------------------------------
2
2
  * This file was automatically generated by SWIG (http://www.swig.org).
3
- * Version 4.0.2
3
+ * Version 4.1.0
4
4
  *
5
5
  * This file is not intended to be easily readable and contains a number of
6
6
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -1613,6 +1613,8 @@ SWIGRUNTIMEINLINE char *
1613
1613
  SWIG_Ruby_MangleStr(VALUE obj)
1614
1614
  {
1615
1615
  VALUE stype = rb_iv_get(obj, "@__swigtype__");
1616
+ if (NIL_P(stype))
1617
+ return NULL;
1616
1618
  return StringValuePtr(stype);
1617
1619
  }
1618
1620
 
@@ -2202,7 +2204,7 @@ static VALUE mGosu;
2202
2204
  #define SWIG_RUBY_THREAD_END_BLOCK
2203
2205
 
2204
2206
 
2205
- #define SWIGVERSION 0x040002
2207
+ #define SWIGVERSION 0x040100
2206
2208
  #define SWIG_VERSION SWIGVERSION
2207
2209
 
2208
2210
 
@@ -2265,20 +2267,21 @@ namespace Gosu
2265
2267
  rb_funcall(block, rb_intern("call"), 0);
2266
2268
  }
2267
2269
 
2268
- void load_bitmap(Bitmap& bitmap, VALUE val)
2270
+ void load_bitmap(Gosu::Bitmap& bitmap, VALUE val)
2269
2271
  {
2270
2272
  // Try to treat as filename first.
2271
2273
  if (rb_respond_to(val, rb_intern("to_str"))) {
2272
2274
  VALUE to_str = rb_funcall(val, rb_intern("to_str"), 0);
2273
2275
  const char* filename = StringValuePtr(to_str);
2274
- load_image_file(bitmap, filename);
2276
+ bitmap = Gosu::load_image_file(filename);
2275
2277
  return;
2276
2278
  }
2277
2279
 
2278
2280
  // Otherwise, try to call .to_blob on it (works with RMagick, TexPlay etc).
2279
2281
  VALUE conversion = rb_str_new2("to_blob { self.format = 'RGBA'; self.depth = 8 }");
2280
2282
  VALUE blob = rb_obj_instance_eval(1, &conversion, val);
2281
- rb_check_safe_obj(blob);
2283
+ Check_Type(blob, T_STRING);
2284
+
2282
2285
  int width = NUM2ULONG(rb_funcall(val, rb_intern("columns"), 0));
2283
2286
  int height = NUM2ULONG(rb_funcall(val, rb_intern("rows"), 0));
2284
2287
 
@@ -2326,6 +2329,23 @@ namespace Gosu
2326
2329
  {
2327
2330
  return Gosu::Input::down(btn);
2328
2331
  }
2332
+
2333
+ VALUE button_name(Gosu::Button btn)
2334
+ {
2335
+ std::string result = Gosu::Input::button_name(btn);
2336
+ return result.empty() ? Qnil : rb_str_new2(result.c_str());
2337
+ }
2338
+
2339
+ VALUE gamepad_name(int index)
2340
+ {
2341
+ std::string result = Gosu::Input::gamepad_name(index);
2342
+ return result.empty() ? Qnil : rb_str_new2(result.c_str());
2343
+ }
2344
+
2345
+ double axis(Gosu::Button btn)
2346
+ {
2347
+ return Gosu::Input::axis(btn);
2348
+ }
2329
2349
  }
2330
2350
 
2331
2351
  // Global graphics functions
@@ -2500,7 +2520,7 @@ SWIG_ruby_failed(VALUE SWIGUNUSEDPARM(arg1), VALUE SWIGUNUSEDPARM(arg2))
2500
2520
  }
2501
2521
 
2502
2522
 
2503
- /*@SWIG:/usr/local/Cellar/swig/HEAD-7051753/share/swig/4.0.2/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2523
+ /*@SWIG:/usr/local/Cellar/swig/HEAD-975f8fc/share/swig/4.1.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2504
2524
  SWIGINTERN VALUE SWIG_AUX_NUM2DBL(VALUE arg)
2505
2525
  {
2506
2526
  VALUE *args = (VALUE *)arg;
@@ -2543,7 +2563,7 @@ SWIG_From_unsigned_SS_int (unsigned int value)
2543
2563
  #include <string>
2544
2564
 
2545
2565
 
2546
- /*@SWIG:/usr/local/Cellar/swig/HEAD-7051753/share/swig/4.0.2/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2566
+ /*@SWIG:/usr/local/Cellar/swig/HEAD-975f8fc/share/swig/4.1.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2547
2567
  SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE arg)
2548
2568
  {
2549
2569
  VALUE *args = (VALUE *)arg;
@@ -2749,7 +2769,7 @@ SWIG_AsPtr_std_string (VALUE obj, std::string **val)
2749
2769
  }
2750
2770
 
2751
2771
 
2752
- /*@SWIG:/usr/local/Cellar/swig/HEAD-7051753/share/swig/4.0.2/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2772
+ /*@SWIG:/usr/local/Cellar/swig/HEAD-975f8fc/share/swig/4.1.0/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
2753
2773
  SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE arg)
2754
2774
  {
2755
2775
  VALUE *args = (VALUE *)arg;
@@ -2849,8 +2869,8 @@ SWIGINTERN Gosu::Image *new_Gosu_Image(VALUE source,VALUE options=0){
2849
2869
  Gosu::Bitmap bmp;
2850
2870
  Gosu::load_bitmap(bmp, source);
2851
2871
 
2852
- unsigned src_x = 0, src_y = 0;
2853
- unsigned src_width = bmp.width(), src_height = bmp.height();
2872
+ int src_x = 0, src_y = 0;
2873
+ int src_width = bmp.width(), src_height = bmp.height();
2854
2874
  unsigned flags = 0;
2855
2875
 
2856
2876
  if (options) {
@@ -3047,10 +3067,10 @@ SWIGINTERN VALUE Gosu_Image_to_blob(Gosu::Image const *self){
3047
3067
  auto size = bmp.width() * bmp.height() * sizeof(Gosu::Color);
3048
3068
  return rb_str_new(reinterpret_cast<const char*>(bmp.data()), size);
3049
3069
  }
3050
- SWIGINTERN unsigned int Gosu_Image_columns(Gosu::Image const *self){
3070
+ SWIGINTERN int Gosu_Image_columns(Gosu::Image const *self){
3051
3071
  return self->width();
3052
3072
  }
3053
- SWIGINTERN unsigned int Gosu_Image_rows(Gosu::Image const *self){
3073
+ SWIGINTERN int Gosu_Image_rows(Gosu::Image const *self){
3054
3074
  return self->height();
3055
3075
  }
3056
3076
  SWIGINTERN void Gosu_Image_save(Gosu::Image const *self,std::string const &filename){
@@ -3199,7 +3219,7 @@ std::string SwigDirector_TextInput::filter(std::string text) const {
3199
3219
  }
3200
3220
 
3201
3221
 
3202
- SwigDirector_Window::SwigDirector_Window(VALUE self, unsigned int width, unsigned int height, bool fullscreen, double update_interval, bool resizable): Gosu::Window(width, height, fullscreen, update_interval, resizable), Swig::Director(self) {
3222
+ SwigDirector_Window::SwigDirector_Window(VALUE self,unsigned int width,unsigned int height,bool fullscreen,double update_interval,bool resizable): Gosu::Window(width, height, fullscreen, update_interval, resizable), Swig::Director(self) {
3203
3223
 
3204
3224
  }
3205
3225
 
@@ -3317,12 +3337,30 @@ void SwigDirector_Window::button_up(Gosu::Button arg0) {
3317
3337
  }
3318
3338
 
3319
3339
 
3340
+ void SwigDirector_Window::gamepad_connected(int index) {
3341
+ VALUE obj0 = Qnil ;
3342
+ VALUE SWIGUNUSED result;
3343
+
3344
+ obj0 = SWIG_From_int(static_cast< int >(index));
3345
+ result = rb_funcall(swig_get_self(), rb_intern("protected_gamepad_connected"), 1,obj0);
3346
+ }
3347
+
3348
+
3349
+ void SwigDirector_Window::gamepad_disconnected(int index) {
3350
+ VALUE obj0 = Qnil ;
3351
+ VALUE SWIGUNUSED result;
3352
+
3353
+ obj0 = SWIG_From_int(static_cast< int >(index));
3354
+ result = rb_funcall(swig_get_self(), rb_intern("protected_gamepad_disconnected"), 1,obj0);
3355
+ }
3356
+
3357
+
3320
3358
  void SwigDirector_Window::drop(std::string const &filename) {
3321
3359
  VALUE obj0 = Qnil ;
3322
3360
  VALUE SWIGUNUSED result;
3323
3361
 
3324
3362
  obj0 = SWIG_From_std_string(static_cast< std::string >(filename));
3325
- result = rb_funcall(swig_get_self(), rb_intern("drop"), 1,obj0);
3363
+ result = rb_funcall(swig_get_self(), rb_intern("protected_drop"), 1,obj0);
3326
3364
  }
3327
3365
 
3328
3366
 
@@ -3789,25 +3827,6 @@ fail:
3789
3827
  }
3790
3828
 
3791
3829
 
3792
- SWIGINTERN VALUE
3793
- _wrap__release_all_openal_resources(int argc, VALUE *argv, VALUE self) {
3794
- if ((argc < 0) || (argc > 0)) {
3795
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
3796
- }
3797
- {
3798
- try {
3799
- Gosu::al_shutdown();
3800
- }
3801
- catch (const std::exception& e) {
3802
- SWIG_exception(SWIG_RuntimeError, e.what());
3803
- }
3804
- }
3805
- return Qnil;
3806
- fail:
3807
- return Qnil;
3808
- }
3809
-
3810
-
3811
3830
  static swig_class SwigClassColor;
3812
3831
 
3813
3832
  SWIGINTERN VALUE
@@ -6193,7 +6212,7 @@ _wrap_Image_draw(int argc, VALUE *argv, VALUE self) {
6193
6212
  Gosu::Image *arg1 = (Gosu::Image *) 0 ;
6194
6213
  double arg2 ;
6195
6214
  double arg3 ;
6196
- Gosu::ZPos arg4 ;
6215
+ Gosu::ZPos arg4 = (Gosu::ZPos) 0 ;
6197
6216
  double arg5 = (double) 1 ;
6198
6217
  double arg6 = (double) 1 ;
6199
6218
  Gosu::Color arg7 = (Gosu::Color) Gosu::Color::WHITE ;
@@ -6211,8 +6230,8 @@ _wrap_Image_draw(int argc, VALUE *argv, VALUE self) {
6211
6230
  double val6 ;
6212
6231
  int ecode6 = 0 ;
6213
6232
 
6214
- if ((argc < 3) || (argc > 7)) {
6215
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
6233
+ if ((argc < 2) || (argc > 7)) {
6234
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
6216
6235
  }
6217
6236
  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Gosu__Image, 0 | 0 );
6218
6237
  if (!SWIG_IsOK(res1)) {
@@ -6229,11 +6248,13 @@ _wrap_Image_draw(int argc, VALUE *argv, VALUE self) {
6229
6248
  SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","draw", 3, argv[1] ));
6230
6249
  }
6231
6250
  arg3 = static_cast< double >(val3);
6232
- ecode4 = SWIG_AsVal_double(argv[2], &val4);
6233
- if (!SWIG_IsOK(ecode4)) {
6234
- SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "Gosu::ZPos","draw", 4, argv[2] ));
6235
- }
6236
- arg4 = static_cast< Gosu::ZPos >(val4);
6251
+ if (argc > 2) {
6252
+ ecode4 = SWIG_AsVal_double(argv[2], &val4);
6253
+ if (!SWIG_IsOK(ecode4)) {
6254
+ SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "Gosu::ZPos","draw", 4, argv[2] ));
6255
+ }
6256
+ arg4 = static_cast< Gosu::ZPos >(val4);
6257
+ }
6237
6258
  if (argc > 3) {
6238
6259
  ecode5 = SWIG_AsVal_double(argv[3], &val5);
6239
6260
  if (!SWIG_IsOK(ecode5)) {
@@ -6470,8 +6491,8 @@ _wrap_Image_draw_rot(int argc, VALUE *argv, VALUE self) {
6470
6491
  Gosu::Image *arg1 = (Gosu::Image *) 0 ;
6471
6492
  double arg2 ;
6472
6493
  double arg3 ;
6473
- Gosu::ZPos arg4 ;
6474
- double arg5 ;
6494
+ Gosu::ZPos arg4 = (Gosu::ZPos) 0 ;
6495
+ double arg5 = (double) 0 ;
6475
6496
  double arg6 = (double) 0.5 ;
6476
6497
  double arg7 = (double) 0.5 ;
6477
6498
  double arg8 = (double) 1 ;
@@ -6497,8 +6518,8 @@ _wrap_Image_draw_rot(int argc, VALUE *argv, VALUE self) {
6497
6518
  double val9 ;
6498
6519
  int ecode9 = 0 ;
6499
6520
 
6500
- if ((argc < 4) || (argc > 10)) {
6501
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
6521
+ if ((argc < 2) || (argc > 10)) {
6522
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
6502
6523
  }
6503
6524
  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Gosu__Image, 0 | 0 );
6504
6525
  if (!SWIG_IsOK(res1)) {
@@ -6515,16 +6536,20 @@ _wrap_Image_draw_rot(int argc, VALUE *argv, VALUE self) {
6515
6536
  SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","draw_rot", 3, argv[1] ));
6516
6537
  }
6517
6538
  arg3 = static_cast< double >(val3);
6518
- ecode4 = SWIG_AsVal_double(argv[2], &val4);
6519
- if (!SWIG_IsOK(ecode4)) {
6520
- SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "Gosu::ZPos","draw_rot", 4, argv[2] ));
6521
- }
6522
- arg4 = static_cast< Gosu::ZPos >(val4);
6523
- ecode5 = SWIG_AsVal_double(argv[3], &val5);
6524
- if (!SWIG_IsOK(ecode5)) {
6525
- SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "double","draw_rot", 5, argv[3] ));
6526
- }
6527
- arg5 = static_cast< double >(val5);
6539
+ if (argc > 2) {
6540
+ ecode4 = SWIG_AsVal_double(argv[2], &val4);
6541
+ if (!SWIG_IsOK(ecode4)) {
6542
+ SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "Gosu::ZPos","draw_rot", 4, argv[2] ));
6543
+ }
6544
+ arg4 = static_cast< Gosu::ZPos >(val4);
6545
+ }
6546
+ if (argc > 3) {
6547
+ ecode5 = SWIG_AsVal_double(argv[3], &val5);
6548
+ if (!SWIG_IsOK(ecode5)) {
6549
+ SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "double","draw_rot", 5, argv[3] ));
6550
+ }
6551
+ arg5 = static_cast< double >(val5);
6552
+ }
6528
6553
  if (argc > 4) {
6529
6554
  ecode6 = SWIG_AsVal_double(argv[4], &val6);
6530
6555
  if (!SWIG_IsOK(ecode6)) {
@@ -7221,7 +7246,7 @@ _wrap_Image_columns(int argc, VALUE *argv, VALUE self) {
7221
7246
  Gosu::Image *arg1 = (Gosu::Image *) 0 ;
7222
7247
  void *argp1 = 0 ;
7223
7248
  int res1 = 0 ;
7224
- unsigned int result;
7249
+ int result;
7225
7250
  VALUE vresult = Qnil;
7226
7251
 
7227
7252
  if ((argc < 0) || (argc > 0)) {
@@ -7234,13 +7259,13 @@ _wrap_Image_columns(int argc, VALUE *argv, VALUE self) {
7234
7259
  arg1 = reinterpret_cast< Gosu::Image * >(argp1);
7235
7260
  {
7236
7261
  try {
7237
- result = (unsigned int)Gosu_Image_columns((Gosu::Image const *)arg1);
7262
+ result = (int)Gosu_Image_columns((Gosu::Image const *)arg1);
7238
7263
  }
7239
7264
  catch (const std::exception& e) {
7240
7265
  SWIG_exception(SWIG_RuntimeError, e.what());
7241
7266
  }
7242
7267
  }
7243
- vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
7268
+ vresult = SWIG_From_int(static_cast< int >(result));
7244
7269
  return vresult;
7245
7270
  fail:
7246
7271
  return Qnil;
@@ -7252,7 +7277,7 @@ _wrap_Image_rows(int argc, VALUE *argv, VALUE self) {
7252
7277
  Gosu::Image *arg1 = (Gosu::Image *) 0 ;
7253
7278
  void *argp1 = 0 ;
7254
7279
  int res1 = 0 ;
7255
- unsigned int result;
7280
+ int result;
7256
7281
  VALUE vresult = Qnil;
7257
7282
 
7258
7283
  if ((argc < 0) || (argc > 0)) {
@@ -7265,13 +7290,13 @@ _wrap_Image_rows(int argc, VALUE *argv, VALUE self) {
7265
7290
  arg1 = reinterpret_cast< Gosu::Image * >(argp1);
7266
7291
  {
7267
7292
  try {
7268
- result = (unsigned int)Gosu_Image_rows((Gosu::Image const *)arg1);
7293
+ result = (int)Gosu_Image_rows((Gosu::Image const *)arg1);
7269
7294
  }
7270
7295
  catch (const std::exception& e) {
7271
7296
  SWIG_exception(SWIG_RuntimeError, e.what());
7272
7297
  }
7273
7298
  }
7274
- vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
7299
+ vresult = SWIG_From_int(static_cast< int >(result));
7275
7300
  return vresult;
7276
7301
  fail:
7277
7302
  return Qnil;
@@ -9529,6 +9554,104 @@ fail:
9529
9554
  }
9530
9555
 
9531
9556
 
9557
+ SWIGINTERN VALUE
9558
+ _wrap_Window_gamepad_connected(int argc, VALUE *argv, VALUE self) {
9559
+ Gosu::Window *arg1 = (Gosu::Window *) 0 ;
9560
+ int arg2 ;
9561
+ void *argp1 = 0 ;
9562
+ int res1 = 0 ;
9563
+ int val2 ;
9564
+ int ecode2 = 0 ;
9565
+ Swig::Director *director = 0;
9566
+ bool upcall = false;
9567
+
9568
+ if ((argc < 1) || (argc > 1)) {
9569
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
9570
+ }
9571
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Gosu__Window, 0 | 0 );
9572
+ if (!SWIG_IsOK(res1)) {
9573
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::Window *","gamepad_connected", 1, self ));
9574
+ }
9575
+ arg1 = reinterpret_cast< Gosu::Window * >(argp1);
9576
+ ecode2 = SWIG_AsVal_int(argv[0], &val2);
9577
+ if (!SWIG_IsOK(ecode2)) {
9578
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","gamepad_connected", 2, argv[0] ));
9579
+ }
9580
+ arg2 = static_cast< int >(val2);
9581
+ director = dynamic_cast<Swig::Director *>(arg1);
9582
+ upcall = (director && (director->swig_get_self() == self));
9583
+ try {
9584
+ {
9585
+ try {
9586
+ if (upcall) {
9587
+ (arg1)->Gosu::Window::gamepad_connected(arg2);
9588
+ } else {
9589
+ (arg1)->gamepad_connected(arg2);
9590
+ }
9591
+ }
9592
+ catch (const std::exception& e) {
9593
+ SWIG_exception(SWIG_RuntimeError, e.what());
9594
+ }
9595
+ }
9596
+ } catch (Swig::DirectorException& e) {
9597
+ rb_exc_raise(e.getError());
9598
+ SWIG_fail;
9599
+ }
9600
+ return Qnil;
9601
+ fail:
9602
+ return Qnil;
9603
+ }
9604
+
9605
+
9606
+ SWIGINTERN VALUE
9607
+ _wrap_Window_gamepad_disconnected(int argc, VALUE *argv, VALUE self) {
9608
+ Gosu::Window *arg1 = (Gosu::Window *) 0 ;
9609
+ int arg2 ;
9610
+ void *argp1 = 0 ;
9611
+ int res1 = 0 ;
9612
+ int val2 ;
9613
+ int ecode2 = 0 ;
9614
+ Swig::Director *director = 0;
9615
+ bool upcall = false;
9616
+
9617
+ if ((argc < 1) || (argc > 1)) {
9618
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
9619
+ }
9620
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Gosu__Window, 0 | 0 );
9621
+ if (!SWIG_IsOK(res1)) {
9622
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::Window *","gamepad_disconnected", 1, self ));
9623
+ }
9624
+ arg1 = reinterpret_cast< Gosu::Window * >(argp1);
9625
+ ecode2 = SWIG_AsVal_int(argv[0], &val2);
9626
+ if (!SWIG_IsOK(ecode2)) {
9627
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","gamepad_disconnected", 2, argv[0] ));
9628
+ }
9629
+ arg2 = static_cast< int >(val2);
9630
+ director = dynamic_cast<Swig::Director *>(arg1);
9631
+ upcall = (director && (director->swig_get_self() == self));
9632
+ try {
9633
+ {
9634
+ try {
9635
+ if (upcall) {
9636
+ (arg1)->Gosu::Window::gamepad_disconnected(arg2);
9637
+ } else {
9638
+ (arg1)->gamepad_disconnected(arg2);
9639
+ }
9640
+ }
9641
+ catch (const std::exception& e) {
9642
+ SWIG_exception(SWIG_RuntimeError, e.what());
9643
+ }
9644
+ }
9645
+ } catch (Swig::DirectorException& e) {
9646
+ rb_exc_raise(e.getError());
9647
+ SWIG_fail;
9648
+ }
9649
+ return Qnil;
9650
+ fail:
9651
+ return Qnil;
9652
+ }
9653
+
9654
+
9532
9655
  SWIGINTERN VALUE
9533
9656
  _wrap_Window_drop(int argc, VALUE *argv, VALUE self) {
9534
9657
  Gosu::Window *arg1 = (Gosu::Window *) 0 ;
@@ -10218,6 +10341,91 @@ fail:
10218
10341
  }
10219
10342
 
10220
10343
 
10344
+ SWIGINTERN VALUE
10345
+ _wrap_button_name(int argc, VALUE *argv, VALUE self) {
10346
+ Gosu::Button arg1 ;
10347
+ VALUE result;
10348
+ VALUE vresult = Qnil;
10349
+
10350
+ if ((argc < 1) || (argc > 1)) {
10351
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
10352
+ }
10353
+ {
10354
+ arg1 = NIL_P(argv[0]) ? Gosu::NO_BUTTON : Gosu::Button(NUM2LONG(argv[0]));
10355
+ }
10356
+ {
10357
+ try {
10358
+ result = (VALUE)Gosu::button_name(arg1);
10359
+ }
10360
+ catch (const std::exception& e) {
10361
+ SWIG_exception(SWIG_RuntimeError, e.what());
10362
+ }
10363
+ }
10364
+ vresult = result;
10365
+ return vresult;
10366
+ fail:
10367
+ return Qnil;
10368
+ }
10369
+
10370
+
10371
+ SWIGINTERN VALUE
10372
+ _wrap_gamepad_name(int argc, VALUE *argv, VALUE self) {
10373
+ int arg1 ;
10374
+ int val1 ;
10375
+ int ecode1 = 0 ;
10376
+ VALUE result;
10377
+ VALUE vresult = Qnil;
10378
+
10379
+ if ((argc < 1) || (argc > 1)) {
10380
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
10381
+ }
10382
+ ecode1 = SWIG_AsVal_int(argv[0], &val1);
10383
+ if (!SWIG_IsOK(ecode1)) {
10384
+ SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int","Gosu::gamepad_name", 1, argv[0] ));
10385
+ }
10386
+ arg1 = static_cast< int >(val1);
10387
+ {
10388
+ try {
10389
+ result = (VALUE)Gosu::gamepad_name(arg1);
10390
+ }
10391
+ catch (const std::exception& e) {
10392
+ SWIG_exception(SWIG_RuntimeError, e.what());
10393
+ }
10394
+ }
10395
+ vresult = result;
10396
+ return vresult;
10397
+ fail:
10398
+ return Qnil;
10399
+ }
10400
+
10401
+
10402
+ SWIGINTERN VALUE
10403
+ _wrap_axis(int argc, VALUE *argv, VALUE self) {
10404
+ Gosu::Button arg1 ;
10405
+ double result;
10406
+ VALUE vresult = Qnil;
10407
+
10408
+ if ((argc < 1) || (argc > 1)) {
10409
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
10410
+ }
10411
+ {
10412
+ arg1 = NIL_P(argv[0]) ? Gosu::NO_BUTTON : Gosu::Button(NUM2LONG(argv[0]));
10413
+ }
10414
+ {
10415
+ try {
10416
+ result = (double)Gosu::axis(arg1);
10417
+ }
10418
+ catch (const std::exception& e) {
10419
+ SWIG_exception(SWIG_RuntimeError, e.what());
10420
+ }
10421
+ }
10422
+ vresult = SWIG_From_double(static_cast< double >(result));
10423
+ return vresult;
10424
+ fail:
10425
+ return Qnil;
10426
+ }
10427
+
10428
+
10221
10429
  SWIGINTERN VALUE
10222
10430
  _wrap_draw_line(int argc, VALUE *argv, VALUE self) {
10223
10431
  double arg1 ;
@@ -11763,7 +11971,7 @@ SWIGEXPORT void Init_gosu(void) {
11763
11971
  rb_define_const(mGosu, "LICENSES", SWIG_From_std_string(static_cast< std::string >(Gosu::LICENSES)));
11764
11972
  rb_define_const(mGosu, "MAJOR_VERSION", SWIG_From_int(static_cast< int >(0)));
11765
11973
  rb_define_const(mGosu, "MINOR_VERSION", SWIG_From_int(static_cast< int >(15)));
11766
- rb_define_const(mGosu, "POINT_VERSION", SWIG_From_int(static_cast< int >(1)));
11974
+ rb_define_const(mGosu, "POINT_VERSION", SWIG_From_int(static_cast< int >(2)));
11767
11975
  rb_define_module_function(mGosu, "milliseconds", VALUEFUNC(_wrap_milliseconds), -1);
11768
11976
  rb_define_module_function(mGosu, "random", VALUEFUNC(_wrap_random), -1);
11769
11977
  rb_define_module_function(mGosu, "degrees_to_radians", VALUEFUNC(_wrap_degrees_to_radians), -1);
@@ -11778,7 +11986,6 @@ SWIGEXPORT void Init_gosu(void) {
11778
11986
  rb_define_const(mGosu, "MAX_TEXTURE_SIZE", SWIG_From_unsigned_SS_int(static_cast< unsigned int >(Gosu::MAX_TEXTURE_SIZE)));
11779
11987
  rb_define_module_function(mGosu, "language", VALUEFUNC(_wrap_language), -1);
11780
11988
  rb_define_module_function(mGosu, "enable_undocumented_retrofication", VALUEFUNC(_wrap_enable_undocumented_retrofication), -1);
11781
- rb_define_module_function(mGosu, "_release_all_openal_resources", VALUEFUNC(_wrap__release_all_openal_resources), -1);
11782
11989
 
11783
11990
  SwigClassColor.klass = rb_define_class_under(mGosu, "Color", rb_cObject);
11784
11991
  SWIG_TypeClientData(SWIGTYPE_p_Gosu__Color, (void *) &SwigClassColor);
@@ -11956,6 +12163,9 @@ SWIGEXPORT void Init_gosu(void) {
11956
12163
  rb_define_const(mGosu, "KB_DOWN", SWIG_From_int(static_cast< int >(Gosu::KB_DOWN)));
11957
12164
  rb_define_const(mGosu, "KB_HOME", SWIG_From_int(static_cast< int >(Gosu::KB_HOME)));
11958
12165
  rb_define_const(mGosu, "KB_END", SWIG_From_int(static_cast< int >(Gosu::KB_END)));
12166
+ rb_define_const(mGosu, "KB_PRINTSCREEN", SWIG_From_int(static_cast< int >(Gosu::KB_PRINTSCREEN)));
12167
+ rb_define_const(mGosu, "KB_SCROLLLOCK", SWIG_From_int(static_cast< int >(Gosu::KB_SCROLLLOCK)));
12168
+ rb_define_const(mGosu, "KB_PAUSE", SWIG_From_int(static_cast< int >(Gosu::KB_PAUSE)));
11959
12169
  rb_define_const(mGosu, "KB_INSERT", SWIG_From_int(static_cast< int >(Gosu::KB_INSERT)));
11960
12170
  rb_define_const(mGosu, "KB_DELETE", SWIG_From_int(static_cast< int >(Gosu::KB_DELETE)));
11961
12171
  rb_define_const(mGosu, "KB_PAGE_UP", SWIG_From_int(static_cast< int >(Gosu::KB_PAGE_UP)));
@@ -11972,6 +12182,7 @@ SWIGEXPORT void Init_gosu(void) {
11972
12182
  rb_define_const(mGosu, "KB_COMMA", SWIG_From_int(static_cast< int >(Gosu::KB_COMMA)));
11973
12183
  rb_define_const(mGosu, "KB_PERIOD", SWIG_From_int(static_cast< int >(Gosu::KB_PERIOD)));
11974
12184
  rb_define_const(mGosu, "KB_SLASH", SWIG_From_int(static_cast< int >(Gosu::KB_SLASH)));
12185
+ rb_define_const(mGosu, "KB_CAPSLOCK", SWIG_From_int(static_cast< int >(Gosu::KB_CAPSLOCK)));
11975
12186
  rb_define_const(mGosu, "KB_A", SWIG_From_int(static_cast< int >(Gosu::KB_A)));
11976
12187
  rb_define_const(mGosu, "KB_B", SWIG_From_int(static_cast< int >(Gosu::KB_B)));
11977
12188
  rb_define_const(mGosu, "KB_C", SWIG_From_int(static_cast< int >(Gosu::KB_C)));
@@ -12027,10 +12238,10 @@ SWIGEXPORT void Init_gosu(void) {
12027
12238
  rb_define_const(mGosu, "MS_OTHER_5", SWIG_From_int(static_cast< int >(Gosu::MS_OTHER_5)));
12028
12239
  rb_define_const(mGosu, "MS_OTHER_6", SWIG_From_int(static_cast< int >(Gosu::MS_OTHER_6)));
12029
12240
  rb_define_const(mGosu, "MS_OTHER_7", SWIG_From_int(static_cast< int >(Gosu::MS_OTHER_7)));
12030
- rb_define_const(mGosu, "GP_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_LEFT)));
12031
- rb_define_const(mGosu, "GP_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_RIGHT)));
12032
- rb_define_const(mGosu, "GP_UP", SWIG_From_int(static_cast< int >(Gosu::GP_UP)));
12033
- rb_define_const(mGosu, "GP_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_DOWN)));
12241
+ rb_define_const(mGosu, "GP_DPAD_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_DPAD_LEFT)));
12242
+ rb_define_const(mGosu, "GP_DPAD_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_DPAD_RIGHT)));
12243
+ rb_define_const(mGosu, "GP_DPAD_UP", SWIG_From_int(static_cast< int >(Gosu::GP_DPAD_UP)));
12244
+ rb_define_const(mGosu, "GP_DPAD_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_DPAD_DOWN)));
12034
12245
  rb_define_const(mGosu, "GP_BUTTON_0", SWIG_From_int(static_cast< int >(Gosu::GP_BUTTON_0)));
12035
12246
  rb_define_const(mGosu, "GP_BUTTON_1", SWIG_From_int(static_cast< int >(Gosu::GP_BUTTON_1)));
12036
12247
  rb_define_const(mGosu, "GP_BUTTON_2", SWIG_From_int(static_cast< int >(Gosu::GP_BUTTON_2)));
@@ -12047,10 +12258,10 @@ SWIGEXPORT void Init_gosu(void) {
12047
12258
  rb_define_const(mGosu, "GP_BUTTON_13", SWIG_From_int(static_cast< int >(Gosu::GP_BUTTON_13)));
12048
12259
  rb_define_const(mGosu, "GP_BUTTON_14", SWIG_From_int(static_cast< int >(Gosu::GP_BUTTON_14)));
12049
12260
  rb_define_const(mGosu, "GP_BUTTON_15", SWIG_From_int(static_cast< int >(Gosu::GP_BUTTON_15)));
12050
- rb_define_const(mGosu, "GP_0_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_0_LEFT)));
12051
- rb_define_const(mGosu, "GP_0_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_0_RIGHT)));
12052
- rb_define_const(mGosu, "GP_0_UP", SWIG_From_int(static_cast< int >(Gosu::GP_0_UP)));
12053
- rb_define_const(mGosu, "GP_0_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_0_DOWN)));
12261
+ rb_define_const(mGosu, "GP_0_DPAD_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_0_DPAD_LEFT)));
12262
+ rb_define_const(mGosu, "GP_0_DPAD_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_0_DPAD_RIGHT)));
12263
+ rb_define_const(mGosu, "GP_0_DPAD_UP", SWIG_From_int(static_cast< int >(Gosu::GP_0_DPAD_UP)));
12264
+ rb_define_const(mGosu, "GP_0_DPAD_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_0_DPAD_DOWN)));
12054
12265
  rb_define_const(mGosu, "GP_0_BUTTON_0", SWIG_From_int(static_cast< int >(Gosu::GP_0_BUTTON_0)));
12055
12266
  rb_define_const(mGosu, "GP_0_BUTTON_1", SWIG_From_int(static_cast< int >(Gosu::GP_0_BUTTON_1)));
12056
12267
  rb_define_const(mGosu, "GP_0_BUTTON_2", SWIG_From_int(static_cast< int >(Gosu::GP_0_BUTTON_2)));
@@ -12067,10 +12278,10 @@ SWIGEXPORT void Init_gosu(void) {
12067
12278
  rb_define_const(mGosu, "GP_0_BUTTON_13", SWIG_From_int(static_cast< int >(Gosu::GP_0_BUTTON_13)));
12068
12279
  rb_define_const(mGosu, "GP_0_BUTTON_14", SWIG_From_int(static_cast< int >(Gosu::GP_0_BUTTON_14)));
12069
12280
  rb_define_const(mGosu, "GP_0_BUTTON_15", SWIG_From_int(static_cast< int >(Gosu::GP_0_BUTTON_15)));
12070
- rb_define_const(mGosu, "GP_1_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_1_LEFT)));
12071
- rb_define_const(mGosu, "GP_1_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_1_RIGHT)));
12072
- rb_define_const(mGosu, "GP_1_UP", SWIG_From_int(static_cast< int >(Gosu::GP_1_UP)));
12073
- rb_define_const(mGosu, "GP_1_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_1_DOWN)));
12281
+ rb_define_const(mGosu, "GP_1_DPAD_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_1_DPAD_LEFT)));
12282
+ rb_define_const(mGosu, "GP_1_DPAD_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_1_DPAD_RIGHT)));
12283
+ rb_define_const(mGosu, "GP_1_DPAD_UP", SWIG_From_int(static_cast< int >(Gosu::GP_1_DPAD_UP)));
12284
+ rb_define_const(mGosu, "GP_1_DPAD_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_1_DPAD_DOWN)));
12074
12285
  rb_define_const(mGosu, "GP_1_BUTTON_0", SWIG_From_int(static_cast< int >(Gosu::GP_1_BUTTON_0)));
12075
12286
  rb_define_const(mGosu, "GP_1_BUTTON_1", SWIG_From_int(static_cast< int >(Gosu::GP_1_BUTTON_1)));
12076
12287
  rb_define_const(mGosu, "GP_1_BUTTON_2", SWIG_From_int(static_cast< int >(Gosu::GP_1_BUTTON_2)));
@@ -12087,10 +12298,10 @@ SWIGEXPORT void Init_gosu(void) {
12087
12298
  rb_define_const(mGosu, "GP_1_BUTTON_13", SWIG_From_int(static_cast< int >(Gosu::GP_1_BUTTON_13)));
12088
12299
  rb_define_const(mGosu, "GP_1_BUTTON_14", SWIG_From_int(static_cast< int >(Gosu::GP_1_BUTTON_14)));
12089
12300
  rb_define_const(mGosu, "GP_1_BUTTON_15", SWIG_From_int(static_cast< int >(Gosu::GP_1_BUTTON_15)));
12090
- rb_define_const(mGosu, "GP_2_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_2_LEFT)));
12091
- rb_define_const(mGosu, "GP_2_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_2_RIGHT)));
12092
- rb_define_const(mGosu, "GP_2_UP", SWIG_From_int(static_cast< int >(Gosu::GP_2_UP)));
12093
- rb_define_const(mGosu, "GP_2_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_2_DOWN)));
12301
+ rb_define_const(mGosu, "GP_2_DPAD_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_2_DPAD_LEFT)));
12302
+ rb_define_const(mGosu, "GP_2_DPAD_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_2_DPAD_RIGHT)));
12303
+ rb_define_const(mGosu, "GP_2_DPAD_UP", SWIG_From_int(static_cast< int >(Gosu::GP_2_DPAD_UP)));
12304
+ rb_define_const(mGosu, "GP_2_DPAD_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_2_DPAD_DOWN)));
12094
12305
  rb_define_const(mGosu, "GP_2_BUTTON_0", SWIG_From_int(static_cast< int >(Gosu::GP_2_BUTTON_0)));
12095
12306
  rb_define_const(mGosu, "GP_2_BUTTON_1", SWIG_From_int(static_cast< int >(Gosu::GP_2_BUTTON_1)));
12096
12307
  rb_define_const(mGosu, "GP_2_BUTTON_2", SWIG_From_int(static_cast< int >(Gosu::GP_2_BUTTON_2)));
@@ -12107,10 +12318,10 @@ SWIGEXPORT void Init_gosu(void) {
12107
12318
  rb_define_const(mGosu, "GP_2_BUTTON_13", SWIG_From_int(static_cast< int >(Gosu::GP_2_BUTTON_13)));
12108
12319
  rb_define_const(mGosu, "GP_2_BUTTON_14", SWIG_From_int(static_cast< int >(Gosu::GP_2_BUTTON_14)));
12109
12320
  rb_define_const(mGosu, "GP_2_BUTTON_15", SWIG_From_int(static_cast< int >(Gosu::GP_2_BUTTON_15)));
12110
- rb_define_const(mGosu, "GP_3_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_3_LEFT)));
12111
- rb_define_const(mGosu, "GP_3_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_3_RIGHT)));
12112
- rb_define_const(mGosu, "GP_3_UP", SWIG_From_int(static_cast< int >(Gosu::GP_3_UP)));
12113
- rb_define_const(mGosu, "GP_3_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_3_DOWN)));
12321
+ rb_define_const(mGosu, "GP_3_DPAD_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_3_DPAD_LEFT)));
12322
+ rb_define_const(mGosu, "GP_3_DPAD_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_3_DPAD_RIGHT)));
12323
+ rb_define_const(mGosu, "GP_3_DPAD_UP", SWIG_From_int(static_cast< int >(Gosu::GP_3_DPAD_UP)));
12324
+ rb_define_const(mGosu, "GP_3_DPAD_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_3_DPAD_DOWN)));
12114
12325
  rb_define_const(mGosu, "GP_3_BUTTON_0", SWIG_From_int(static_cast< int >(Gosu::GP_3_BUTTON_0)));
12115
12326
  rb_define_const(mGosu, "GP_3_BUTTON_1", SWIG_From_int(static_cast< int >(Gosu::GP_3_BUTTON_1)));
12116
12327
  rb_define_const(mGosu, "GP_3_BUTTON_2", SWIG_From_int(static_cast< int >(Gosu::GP_3_BUTTON_2)));
@@ -12127,6 +12338,56 @@ SWIGEXPORT void Init_gosu(void) {
12127
12338
  rb_define_const(mGosu, "GP_3_BUTTON_13", SWIG_From_int(static_cast< int >(Gosu::GP_3_BUTTON_13)));
12128
12339
  rb_define_const(mGosu, "GP_3_BUTTON_14", SWIG_From_int(static_cast< int >(Gosu::GP_3_BUTTON_14)));
12129
12340
  rb_define_const(mGosu, "GP_3_BUTTON_15", SWIG_From_int(static_cast< int >(Gosu::GP_3_BUTTON_15)));
12341
+ rb_define_const(mGosu, "GP_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_LEFT)));
12342
+ rb_define_const(mGosu, "GP_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_RIGHT)));
12343
+ rb_define_const(mGosu, "GP_UP", SWIG_From_int(static_cast< int >(Gosu::GP_UP)));
12344
+ rb_define_const(mGosu, "GP_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_DOWN)));
12345
+ rb_define_const(mGosu, "GP_0_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_0_LEFT)));
12346
+ rb_define_const(mGosu, "GP_0_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_0_RIGHT)));
12347
+ rb_define_const(mGosu, "GP_0_UP", SWIG_From_int(static_cast< int >(Gosu::GP_0_UP)));
12348
+ rb_define_const(mGosu, "GP_0_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_0_DOWN)));
12349
+ rb_define_const(mGosu, "GP_1_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_1_LEFT)));
12350
+ rb_define_const(mGosu, "GP_1_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_1_RIGHT)));
12351
+ rb_define_const(mGosu, "GP_1_UP", SWIG_From_int(static_cast< int >(Gosu::GP_1_UP)));
12352
+ rb_define_const(mGosu, "GP_1_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_1_DOWN)));
12353
+ rb_define_const(mGosu, "GP_2_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_2_LEFT)));
12354
+ rb_define_const(mGosu, "GP_2_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_2_RIGHT)));
12355
+ rb_define_const(mGosu, "GP_2_UP", SWIG_From_int(static_cast< int >(Gosu::GP_2_UP)));
12356
+ rb_define_const(mGosu, "GP_2_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_2_DOWN)));
12357
+ rb_define_const(mGosu, "GP_3_LEFT", SWIG_From_int(static_cast< int >(Gosu::GP_3_LEFT)));
12358
+ rb_define_const(mGosu, "GP_3_RIGHT", SWIG_From_int(static_cast< int >(Gosu::GP_3_RIGHT)));
12359
+ rb_define_const(mGosu, "GP_3_UP", SWIG_From_int(static_cast< int >(Gosu::GP_3_UP)));
12360
+ rb_define_const(mGosu, "GP_3_DOWN", SWIG_From_int(static_cast< int >(Gosu::GP_3_DOWN)));
12361
+ rb_define_const(mGosu, "GP_LEFT_STICK_X_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_LEFT_STICK_X_AXIS)));
12362
+ rb_define_const(mGosu, "GP_LEFT_STICK_Y_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_LEFT_STICK_Y_AXIS)));
12363
+ rb_define_const(mGosu, "GP_RIGHT_STICK_X_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_RIGHT_STICK_X_AXIS)));
12364
+ rb_define_const(mGosu, "GP_RIGHT_STICK_Y_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_RIGHT_STICK_Y_AXIS)));
12365
+ rb_define_const(mGosu, "GP_LEFT_TRIGGER_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_LEFT_TRIGGER_AXIS)));
12366
+ rb_define_const(mGosu, "GP_RIGHT_TRIGGER_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_RIGHT_TRIGGER_AXIS)));
12367
+ rb_define_const(mGosu, "GP_0_LEFT_STICK_X_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_0_LEFT_STICK_X_AXIS)));
12368
+ rb_define_const(mGosu, "GP_0_LEFT_STICK_Y_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_0_LEFT_STICK_Y_AXIS)));
12369
+ rb_define_const(mGosu, "GP_0_RIGHT_STICK_X_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_0_RIGHT_STICK_X_AXIS)));
12370
+ rb_define_const(mGosu, "GP_0_RIGHT_STICK_Y_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_0_RIGHT_STICK_Y_AXIS)));
12371
+ rb_define_const(mGosu, "GP_0_LEFT_TRIGGER_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_0_LEFT_TRIGGER_AXIS)));
12372
+ rb_define_const(mGosu, "GP_0_RIGHT_TRIGGER_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_0_RIGHT_TRIGGER_AXIS)));
12373
+ rb_define_const(mGosu, "GP_1_LEFT_STICK_X_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_1_LEFT_STICK_X_AXIS)));
12374
+ rb_define_const(mGosu, "GP_1_LEFT_STICK_Y_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_1_LEFT_STICK_Y_AXIS)));
12375
+ rb_define_const(mGosu, "GP_1_RIGHT_STICK_X_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_1_RIGHT_STICK_X_AXIS)));
12376
+ rb_define_const(mGosu, "GP_1_RIGHT_STICK_Y_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_1_RIGHT_STICK_Y_AXIS)));
12377
+ rb_define_const(mGosu, "GP_1_LEFT_TRIGGER_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_1_LEFT_TRIGGER_AXIS)));
12378
+ rb_define_const(mGosu, "GP_1_RIGHT_TRIGGER_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_1_RIGHT_TRIGGER_AXIS)));
12379
+ rb_define_const(mGosu, "GP_2_LEFT_STICK_X_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_2_LEFT_STICK_X_AXIS)));
12380
+ rb_define_const(mGosu, "GP_2_LEFT_STICK_Y_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_2_LEFT_STICK_Y_AXIS)));
12381
+ rb_define_const(mGosu, "GP_2_RIGHT_STICK_X_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_2_RIGHT_STICK_X_AXIS)));
12382
+ rb_define_const(mGosu, "GP_2_RIGHT_STICK_Y_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_2_RIGHT_STICK_Y_AXIS)));
12383
+ rb_define_const(mGosu, "GP_2_LEFT_TRIGGER_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_2_LEFT_TRIGGER_AXIS)));
12384
+ rb_define_const(mGosu, "GP_2_RIGHT_TRIGGER_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_2_RIGHT_TRIGGER_AXIS)));
12385
+ rb_define_const(mGosu, "GP_3_LEFT_STICK_X_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_3_LEFT_STICK_X_AXIS)));
12386
+ rb_define_const(mGosu, "GP_3_LEFT_STICK_Y_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_3_LEFT_STICK_Y_AXIS)));
12387
+ rb_define_const(mGosu, "GP_3_RIGHT_STICK_X_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_3_RIGHT_STICK_X_AXIS)));
12388
+ rb_define_const(mGosu, "GP_3_RIGHT_STICK_Y_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_3_RIGHT_STICK_Y_AXIS)));
12389
+ rb_define_const(mGosu, "GP_3_LEFT_TRIGGER_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_3_LEFT_TRIGGER_AXIS)));
12390
+ rb_define_const(mGosu, "GP_3_RIGHT_TRIGGER_AXIS", SWIG_From_int(static_cast< int >(Gosu::GP_3_RIGHT_TRIGGER_AXIS)));
12130
12391
 
12131
12392
  // Call srand() so that Gosu::random() is actually random in Ruby scripts
12132
12393
  std::srand(static_cast<unsigned>(std::time(0)));
@@ -12176,6 +12437,8 @@ SWIGEXPORT void Init_gosu(void) {
12176
12437
  rb_define_method(SwigClassWindow.klass, "release_memory", VALUEFUNC(_wrap_Window_release_memory), -1);
12177
12438
  rb_define_method(SwigClassWindow.klass, "button_down", VALUEFUNC(_wrap_Window_button_down), -1);
12178
12439
  rb_define_method(SwigClassWindow.klass, "button_up", VALUEFUNC(_wrap_Window_button_up), -1);
12440
+ rb_define_method(SwigClassWindow.klass, "gamepad_connected", VALUEFUNC(_wrap_Window_gamepad_connected), -1);
12441
+ rb_define_method(SwigClassWindow.klass, "gamepad_disconnected", VALUEFUNC(_wrap_Window_gamepad_disconnected), -1);
12179
12442
  rb_define_method(SwigClassWindow.klass, "drop", VALUEFUNC(_wrap_Window_drop), -1);
12180
12443
  rb_define_method(SwigClassWindow.klass, "width=", VALUEFUNC(_wrap_Window_widthe___), -1);
12181
12444
  rb_define_method(SwigClassWindow.klass, "height=", VALUEFUNC(_wrap_Window_heighte___), -1);
@@ -12198,6 +12461,9 @@ SWIGEXPORT void Init_gosu(void) {
12198
12461
  rb_define_module_function(mGosu, "char_to_button_id", VALUEFUNC(_wrap_char_to_button_id), -1);
12199
12462
  rb_define_module_function(mGosu, "button_id_to_char", VALUEFUNC(_wrap_button_id_to_char), -1);
12200
12463
  rb_define_module_function(mGosu, "button_down?", VALUEFUNC(_wrap_button_downq___), -1);
12464
+ rb_define_module_function(mGosu, "button_name", VALUEFUNC(_wrap_button_name), -1);
12465
+ rb_define_module_function(mGosu, "gamepad_name", VALUEFUNC(_wrap_gamepad_name), -1);
12466
+ rb_define_module_function(mGosu, "axis", VALUEFUNC(_wrap_axis), -1);
12201
12467
  rb_define_module_function(mGosu, "draw_line", VALUEFUNC(_wrap_draw_line), -1);
12202
12468
  rb_define_module_function(mGosu, "draw_triangle", VALUEFUNC(_wrap_draw_triangle), -1);
12203
12469
  rb_define_module_function(mGosu, "draw_quad", VALUEFUNC(_wrap_draw_quad), -1);