gosu 0.7.37 → 0.7.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -52,10 +52,10 @@ namespace Gosu
52
52
  void insert(const Bitmap& source, int x, int y, unsigned srcX,
53
53
  unsigned srcY, unsigned srcWidth, unsigned srcHeight);
54
54
 
55
- //! Direct access to the array of color values. May be useful for optimized
55
+ //! Direct access to the array of color values. May be useful for optimized
56
56
  //! OpenGL operations.
57
57
  const Color* data() const { return &pixels[0]; }
58
- Color* data() { return &pixels[0]; }
58
+ Color* data() { return &pixels[0]; }
59
59
 
60
60
  // Work with data() instead if you need fast operations.
61
61
  GOSU_DEPRECATED void fill(Color c);
@@ -126,7 +126,7 @@ namespace Gosu
126
126
  return alpha() << 24 | red() << 16 | green() << 8 | blue();
127
127
  }
128
128
 
129
- //! Returns the color in 0x00bbggrr representation.
129
+ //! Returns the color in 0x00bbggrr representation. Useful for Win32 programming.
130
130
  std::tr1::uint32_t bgr() const
131
131
  {
132
132
  return blue() << 16 | green() << 8 | red();
@@ -90,6 +90,9 @@ namespace Gosu
90
90
  void popTransform();
91
91
 
92
92
  //! Draws a line from one point to another (last pixel exclusive).
93
+ //! Note: OpenGL lines are not reliable at all and may have a missing pixel at the start
94
+ //! or end point. Please only use this for debugging purposes. Otherwise, use a quad or
95
+ //! image to simulate lines, or contribute a better drawLine to Gosu.
93
96
  void drawLine(double x1, double y1, Color c1,
94
97
  double x2, double y2, Color c2,
95
98
  ZPos z, AlphaMode mode = amDefault);
@@ -24,7 +24,8 @@ namespace Gosu
24
24
  //! The colors' channels will be added. The alpha channel specifies
25
25
  //! the percentage of the new color's channels that will be added
26
26
  //! to the old color's channels.
27
- amAdditive,
27
+ amAdd,
28
+ amAdditive = amAdd,
28
29
  //! The color's channels will be multiplied with each other.
29
30
  amMultiply
30
31
  };
@@ -20,7 +20,8 @@ namespace Gosu
20
20
  std::string narrow(const std::wstring& ws);
21
21
 
22
22
  //! Returns the user's preferred language, at the moment of calling the function. Expect return
23
- //! values such as 'en_US', 'de_DE.UTF-8', 'ja', 'zh-Hans'.
23
+ //! values such as 'en_US', 'de_DE.UTF-8', 'ja', 'zh-Hans'. You can rely only on the first two letters
24
+ //! being a common language abbreviation.
24
25
  std::string language();
25
26
  }
26
27
 
@@ -3,8 +3,8 @@
3
3
 
4
4
  #define GOSU_MAJOR_VERSION 0
5
5
  #define GOSU_MINOR_VERSION 7
6
- #define GOSU_POINT_VERSION 37
7
- #define GOSU_VERSION "0.7.37"
6
+ #define GOSU_POINT_VERSION 38
7
+ #define GOSU_VERSION "0.7.38"
8
8
 
9
9
  #define GOSU_COPYRIGHT_NOTICE \
10
10
  " " \
@@ -27,6 +27,20 @@ namespace
27
27
  CGContextDrawImage(context.obj(), CGRectMake(0.0, 0.0, bitmap.width(), bitmap.height()), imageRef);
28
28
  }
29
29
 
30
+ void unmultiplyAlpha(Gosu::Bitmap& bitmap)
31
+ {
32
+ int pixels = bitmap.width() * bitmap.height();
33
+ for (unsigned char* ptr = reinterpret_cast<unsigned char*>(bitmap.data()); pixels--; ptr += 4)
34
+ {
35
+ // Avoid division-by-zero weirdness
36
+ if (!ptr[3])
37
+ continue;
38
+ ptr[0] = ptr[0] * 255 / ptr[3];
39
+ ptr[1] = ptr[1] * 255 / ptr[3];
40
+ ptr[2] = ptr[2] * 255 / ptr[3];
41
+ }
42
+ }
43
+
30
44
  #ifdef GOSU_IS_IPHONE
31
45
  #define APPLE_IMAGE UIImage
32
46
  void appleImageToBitmap(UIImage* image, Gosu::Bitmap& bitmap)
@@ -39,10 +53,13 @@ namespace
39
53
  {
40
54
  // If we have CGImageForProposedRect (10.6+), use it. This is important because the code below
41
55
  // started to break in 10.6:
42
- http://stackoverflow.com/questions/2239785/nsimage-color-shift-on-snow-leopard
56
+ http://stackoverflow.com/questions/2239785/nsimage-color-shift-on-snow-leopard
43
57
 
44
58
  if ([image respondsToSelector:@selector(CGImageForProposedRect:context:hints:)])
45
- return CGImageToBitmap((CGImageRef)[image CGImageForProposedRect:NULL context:nil hints:nil], bitmap);
59
+ {
60
+ CGImageToBitmap((CGImageRef)[image CGImageForProposedRect:NULL context:nil hints:nil], bitmap);
61
+ unmultiplyAlpha(bitmap);
62
+ }
46
63
 
47
64
  // Otherwise, take the slow route using -drawInRect:fromRect:operation:fraction:
48
65
  // TODO: Support vector graphics (we rely on NSBitmapImageRep right now for pixelsWide/pixelsHigh)
@@ -56,16 +73,20 @@ namespace
56
73
 
57
74
  // Use a temporary context to draw the NSImage to the buffer. For that, construct a color
58
75
  // space that does not alter the colors while drawing from the NSImage to the CGBitmapContext.
59
-
60
76
  static Gosu::CFRef<CGColorSpaceRef> colorSpace(CGColorSpaceCreateDeviceRGB());
77
+
78
+ // We do NOT want premultiplied alpha (yet?) in Gosu. However, with kCGImageAlphaLast, this
79
+ // call mysteriously fails.
61
80
  Gosu::CFRef<CGContextRef> context(CGBitmapContextCreate(bitmap.data(), bitmap.width(), bitmap.height(),
62
81
  8, bitmap.width() * 4,
63
- colorSpace.obj(), kCGImageAlphaPremultipliedLast)); // kCGBitmapByteOrder32Host?
82
+ colorSpace.obj(), kCGImageAlphaPremultipliedLast));
83
+
64
84
  [NSGraphicsContext saveGraphicsState];
65
85
  [NSGraphicsContext setCurrentContext:[NSGraphicsContext graphicsContextWithGraphicsPort:context.obj() flipped:NO]];
66
86
  [image drawInRect:NSMakeRect(0, 0, bitmap.width(), bitmap.height()) fromRect:NSZeroRect
67
87
  operation:NSCompositeCopy fraction:1.0];
68
88
  [NSGraphicsContext restoreGraphicsState];
89
+ unmultiplyAlpha(bitmap);
69
90
  }
70
91
  #endif
71
92
  }
@@ -62,6 +62,7 @@ namespace Gosu
62
62
  glEnableClientState(GL_VERTEX_ARRAY);
63
63
  glTexCoordPointer(2, GL_FLOAT, 0, spriteTexcoords);
64
64
  glEnableClientState(GL_TEXTURE_COORD_ARRAY);
65
+ // TODO: See if I can somehow change the format of the color pointer, or maybe change the internal color representation on iOS.
65
66
  glColorPointer(4, GL_UNSIGNED_BYTE, 0, spriteColors);
66
67
  glEnableClientState(GL_COLOR_ARRAY);
67
68
 
@@ -18,16 +18,16 @@ class Gosu::Macro : public Gosu::ImageData
18
18
  Graphics& graphics;
19
19
  public:
20
20
  Macro(Graphics& graphics, DrawOpQueue& queue)
21
- : graphics(graphics)
21
+ : graphics(graphics)
22
22
  {
23
23
  queue.compileTo(vertexArray);
24
24
  double left = 0, right = 0, top = 0, bottom = 0;
25
25
  for (VertexArray::const_iterator it = vertexArray.begin(),
26
26
  end = vertexArray.end(); it != end; ++it)
27
27
  {
28
- left = std::min<double>(left, it->vertices[0]);
29
- right = std::max<double>(right, it->vertices[0]);
30
- top = std::min<double>(top, it->vertices[1]);
28
+ left = std::min<double>(left, it->vertices[0]);
29
+ right = std::max<double>(right, it->vertices[0]);
30
+ top = std::min<double>(top, it->vertices[1]);
31
31
  bottom = std::max<double>(bottom, it->vertices[1]);
32
32
  }
33
33
  w = std::ceil(right - left);
@@ -58,6 +58,10 @@ public:
58
58
  double x2, double y2,
59
59
  double x3, double y3) const
60
60
  {
61
+ // Empty record- avoid division by zero.
62
+ if (vertexArray.empty())
63
+ return;
64
+
61
65
  // TODO: Commented out for now on the iPhone.
62
66
  // To work, it would need to reset the VertexPointer etc. after doing its work.
63
67
  #ifndef GOSU_IS_IPHONE
@@ -75,7 +79,7 @@ public:
75
79
  glScaled((x2 - x1) / width(), (y3 - y1) / height(), 1);
76
80
 
77
81
  glInterleavedArrays(GL_T2F_C4UB_V3F, 0, &vertexArray[0]);
78
-
82
+
79
83
  glDrawArrays(GL_QUADS, 0, vertexArray.size());
80
84
  glFlush();
81
85
 
@@ -96,7 +96,7 @@ public:
96
96
  if (newMode == mode)
97
97
  return;
98
98
  mode = newMode;
99
- if (mode == amAdditive)
99
+ if (mode == amAdd)
100
100
  glBlendFunc(GL_SRC_ALPHA, GL_ONE);
101
101
  else if (mode == amMultiply)
102
102
  glBlendFunc(GL_DST_COLOR, GL_ZERO);
@@ -97,6 +97,8 @@
97
97
  SWIG_exception_fail(SWIG_ValueError, "alpha mode must be a symbol");
98
98
  else if (!strcmp(cstr, "default"))
99
99
  $1 = Gosu::amDefault;
100
+ else if (!strcmp(cstr, "add"))
101
+ $1 = Gosu::amAdditive;
100
102
  else if (!strcmp(cstr, "additive"))
101
103
  $1 = Gosu::amAdditive;
102
104
  else if (!strcmp(cstr, "multiply"))
@@ -124,7 +126,7 @@
124
126
  // Allow integral constants to be passed in place of Color values.
125
127
  %typemap(in) Gosu::Color {
126
128
  if (TYPE($input) == T_FIXNUM || TYPE($input) == T_BIGNUM)
127
- $1 = Gosu::Color(NUM2UINT($input));
129
+ $1 = Gosu::Color(NUM2ULONG($input));
128
130
  else
129
131
  {
130
132
  void* ptr;
@@ -138,6 +140,15 @@
138
140
  }
139
141
  }
140
142
 
143
+ // Make color channels less strict.
144
+ %typemap(in) Gosu::Color::Channel {
145
+ $1 = Gosu::clamp<int>(NUM2ULONG($input), 0, 255);
146
+ }
147
+ // To allow for overloading with Channel values.
148
+ %typemap(typecheck) Gosu::Color::Channel {
149
+ $1 = !!rb_respond_to($input, rb_intern("to_i"));
150
+ }
151
+
141
152
  // Header inclusion (order irrelevant)
142
153
  %module(directors="1") gosu
143
154
  %{
@@ -284,8 +295,8 @@ namespace Gosu
284
295
  VALUE conversion = rb_str_new2("to_blob { self.format = 'RGBA'; self.depth = 8 }");
285
296
  VALUE blob = rb_obj_instance_eval(1, &conversion, val);
286
297
  rb_check_safe_obj(blob);
287
- unsigned width = NUM2UINT(rb_funcall(val, rb_intern("columns"), 0));
288
- unsigned height = NUM2UINT(rb_funcall(val, rb_intern("rows"), 0));
298
+ unsigned width = NUM2ULONG(rb_funcall(val, rb_intern("columns"), 0));
299
+ unsigned height = NUM2ULONG(rb_funcall(val, rb_intern("rows"), 0));
289
300
 
290
301
  bitmap.resize(width, height, Gosu::Color::NONE);
291
302
  if (width * height * 4 == RSTRING_LEN(blob))
@@ -318,7 +329,7 @@ namespace Gosu
318
329
  %exception {
319
330
  try {
320
331
  $action
321
- } catch(const std::runtime_error& e) {
332
+ } catch (const std::exception& e) {
322
333
  SWIG_exception(SWIG_RuntimeError, e.what());
323
334
  }
324
335
  }
@@ -384,6 +395,9 @@ namespace Gosu {
384
395
  %rename("value=") setValue;
385
396
  %include "std_string.i"
386
397
 
398
+ %ignore Gosu::Color::argb();
399
+ %ignore Gosu::Color::bgr();
400
+ %ignore Gosu::Color::abgr();
387
401
  %ignore Gosu::Color::NONE;
388
402
  %ignore Gosu::Color::BLACK;
389
403
  %ignore Gosu::Color::GRAY;
@@ -443,7 +457,7 @@ namespace Gosu {
443
457
 
444
458
  bool operator==(VALUE other) {
445
459
  if (TYPE(other) == T_FIXNUM || TYPE(other) == T_BIGNUM)
446
- return *$self == Gosu::Color(NUM2UINT(other));
460
+ return *$self == Gosu::Color(NUM2ULONG(other));
447
461
  void* ptr;
448
462
  int res = SWIG_ConvertPtr(other, &ptr, SWIGTYPE_p_Gosu__Color, 0);
449
463
  return SWIG_IsOK(res) && ptr && *$self == *reinterpret_cast<Gosu::Color*>(ptr);
@@ -2345,8 +2345,8 @@ namespace Gosu
2345
2345
  VALUE conversion = rb_str_new2("to_blob { self.format = 'RGBA'; self.depth = 8 }");
2346
2346
  VALUE blob = rb_obj_instance_eval(1, &conversion, val);
2347
2347
  rb_check_safe_obj(blob);
2348
- unsigned width = NUM2UINT(rb_funcall(val, rb_intern("columns"), 0));
2349
- unsigned height = NUM2UINT(rb_funcall(val, rb_intern("rows"), 0));
2348
+ unsigned width = NUM2ULONG(rb_funcall(val, rb_intern("columns"), 0));
2349
+ unsigned height = NUM2ULONG(rb_funcall(val, rb_intern("rows"), 0));
2350
2350
 
2351
2351
  bitmap.resize(width, height, Gosu::Color::NONE);
2352
2352
  if (width * height * 4 == RSTRING_LEN(blob))
@@ -2533,22 +2533,6 @@ SWIG_AsVal_unsigned_SS_int (VALUE obj, unsigned int *val)
2533
2533
  }
2534
2534
 
2535
2535
 
2536
- SWIGINTERN int
2537
- SWIG_AsVal_unsigned_SS_char (VALUE obj, unsigned char *val)
2538
- {
2539
- unsigned long v;
2540
- int res = SWIG_AsVal_unsigned_SS_long (obj, &v);
2541
- if (SWIG_IsOK(res)) {
2542
- if ((v > UCHAR_MAX)) {
2543
- return SWIG_OverflowError;
2544
- } else {
2545
- if (val) *val = static_cast< unsigned char >(v);
2546
- }
2547
- }
2548
- return res;
2549
- }
2550
-
2551
-
2552
2536
  SWIGINTERNINLINE VALUE
2553
2537
  SWIG_From_unsigned_SS_char (unsigned char value)
2554
2538
  {
@@ -2591,7 +2575,7 @@ SWIG_From_std_string (const std::string& s)
2591
2575
 
2592
2576
  SWIGINTERN bool Gosu_Color_operator_Se__Se_(Gosu::Color *self,VALUE other){
2593
2577
  if (TYPE(other) == T_FIXNUM || TYPE(other) == T_BIGNUM)
2594
- return *self == Gosu::Color(NUM2UINT(other));
2578
+ return *self == Gosu::Color(NUM2ULONG(other));
2595
2579
  void* ptr;
2596
2580
  int res = SWIG_ConvertPtr(other, &ptr, SWIGTYPE_p_Gosu__Color, 0);
2597
2581
  return SWIG_IsOK(res) && ptr && *self == *reinterpret_cast<Gosu::Color*>(ptr);
@@ -3031,7 +3015,7 @@ _wrap_milliseconds(int argc, VALUE *argv, VALUE self) {
3031
3015
  {
3032
3016
  try {
3033
3017
  result = (unsigned long)Gosu::milliseconds();
3034
- } catch(const std::runtime_error& e) {
3018
+ } catch (const std::exception& e) {
3035
3019
  SWIG_exception(SWIG_RuntimeError, e.what());
3036
3020
  }
3037
3021
  }
@@ -3069,7 +3053,7 @@ _wrap_random(int argc, VALUE *argv, VALUE self) {
3069
3053
  {
3070
3054
  try {
3071
3055
  result = (double)Gosu::random(arg1,arg2);
3072
- } catch(const std::runtime_error& e) {
3056
+ } catch (const std::exception& e) {
3073
3057
  SWIG_exception(SWIG_RuntimeError, e.what());
3074
3058
  }
3075
3059
  }
@@ -3099,7 +3083,7 @@ _wrap_degrees_to_radians(int argc, VALUE *argv, VALUE self) {
3099
3083
  {
3100
3084
  try {
3101
3085
  result = (double)Gosu::degreesToRadians(arg1);
3102
- } catch(const std::runtime_error& e) {
3086
+ } catch (const std::exception& e) {
3103
3087
  SWIG_exception(SWIG_RuntimeError, e.what());
3104
3088
  }
3105
3089
  }
@@ -3129,7 +3113,7 @@ _wrap_radians_to_degrees(int argc, VALUE *argv, VALUE self) {
3129
3113
  {
3130
3114
  try {
3131
3115
  result = (double)Gosu::radiansToDegrees(arg1);
3132
- } catch(const std::runtime_error& e) {
3116
+ } catch (const std::exception& e) {
3133
3117
  SWIG_exception(SWIG_RuntimeError, e.what());
3134
3118
  }
3135
3119
  }
@@ -3167,7 +3151,7 @@ _wrap_offset_x(int argc, VALUE *argv, VALUE self) {
3167
3151
  {
3168
3152
  try {
3169
3153
  result = (double)Gosu::offsetX(arg1,arg2);
3170
- } catch(const std::runtime_error& e) {
3154
+ } catch (const std::exception& e) {
3171
3155
  SWIG_exception(SWIG_RuntimeError, e.what());
3172
3156
  }
3173
3157
  }
@@ -3205,7 +3189,7 @@ _wrap_offset_y(int argc, VALUE *argv, VALUE self) {
3205
3189
  {
3206
3190
  try {
3207
3191
  result = (double)Gosu::offsetY(arg1,arg2);
3208
- } catch(const std::runtime_error& e) {
3192
+ } catch (const std::exception& e) {
3209
3193
  SWIG_exception(SWIG_RuntimeError, e.what());
3210
3194
  }
3211
3195
  }
@@ -3269,7 +3253,7 @@ _wrap_angle(int argc, VALUE *argv, VALUE self) {
3269
3253
  {
3270
3254
  try {
3271
3255
  result = (double)Gosu::angle(arg1,arg2,arg3,arg4,arg5);
3272
- } catch(const std::runtime_error& e) {
3256
+ } catch (const std::exception& e) {
3273
3257
  SWIG_exception(SWIG_RuntimeError, e.what());
3274
3258
  }
3275
3259
  }
@@ -3307,7 +3291,7 @@ _wrap_angle_diff(int argc, VALUE *argv, VALUE self) {
3307
3291
  {
3308
3292
  try {
3309
3293
  result = (double)Gosu::angleDiff(arg1,arg2);
3310
- } catch(const std::runtime_error& e) {
3294
+ } catch (const std::exception& e) {
3311
3295
  SWIG_exception(SWIG_RuntimeError, e.what());
3312
3296
  }
3313
3297
  }
@@ -3337,7 +3321,7 @@ _wrap_normalize_angle(int argc, VALUE *argv, VALUE self) {
3337
3321
  {
3338
3322
  try {
3339
3323
  result = (double)Gosu::normalizeAngle(arg1);
3340
- } catch(const std::runtime_error& e) {
3324
+ } catch (const std::exception& e) {
3341
3325
  SWIG_exception(SWIG_RuntimeError, e.what());
3342
3326
  }
3343
3327
  }
@@ -3391,7 +3375,7 @@ _wrap_distance(int argc, VALUE *argv, VALUE self) {
3391
3375
  {
3392
3376
  try {
3393
3377
  result = (double)Gosu::distance(arg1,arg2,arg3,arg4);
3394
- } catch(const std::runtime_error& e) {
3378
+ } catch (const std::exception& e) {
3395
3379
  SWIG_exception(SWIG_RuntimeError, e.what());
3396
3380
  }
3397
3381
  }
@@ -3413,7 +3397,7 @@ _wrap_default_font_name(int argc, VALUE *argv, VALUE self) {
3413
3397
  {
3414
3398
  try {
3415
3399
  result = Gosu::defaultFontName();
3416
- } catch(const std::runtime_error& e) {
3400
+ } catch (const std::exception& e) {
3417
3401
  SWIG_exception(SWIG_RuntimeError, e.what());
3418
3402
  }
3419
3403
  }
@@ -3438,7 +3422,7 @@ _wrap_screen_width(int argc, VALUE *argv, VALUE self) {
3438
3422
  {
3439
3423
  try {
3440
3424
  result = (unsigned int)Gosu::screenWidth();
3441
- } catch(const std::runtime_error& e) {
3425
+ } catch (const std::exception& e) {
3442
3426
  SWIG_exception(SWIG_RuntimeError, e.what());
3443
3427
  }
3444
3428
  }
@@ -3460,7 +3444,7 @@ _wrap_screen_height(int argc, VALUE *argv, VALUE self) {
3460
3444
  {
3461
3445
  try {
3462
3446
  result = (unsigned int)Gosu::screenHeight();
3463
- } catch(const std::runtime_error& e) {
3447
+ } catch (const std::exception& e) {
3464
3448
  SWIG_exception(SWIG_RuntimeError, e.what());
3465
3449
  }
3466
3450
  }
@@ -3498,7 +3482,7 @@ _wrap_translate(int argc, VALUE *argv, VALUE self) {
3498
3482
  {
3499
3483
  try {
3500
3484
  result = Gosu::translate(arg1,arg2);
3501
- } catch(const std::runtime_error& e) {
3485
+ } catch (const std::exception& e) {
3502
3486
  SWIG_exception(SWIG_RuntimeError, e.what());
3503
3487
  }
3504
3488
  }
@@ -3548,7 +3532,7 @@ _wrap_rotate(int argc, VALUE *argv, VALUE self) {
3548
3532
  {
3549
3533
  try {
3550
3534
  result = Gosu::rotate(arg1,arg2,arg3);
3551
- } catch(const std::runtime_error& e) {
3535
+ } catch (const std::exception& e) {
3552
3536
  SWIG_exception(SWIG_RuntimeError, e.what());
3553
3537
  }
3554
3538
  }
@@ -3578,7 +3562,7 @@ _wrap_scale__SWIG_0(int argc, VALUE *argv, VALUE self) {
3578
3562
  {
3579
3563
  try {
3580
3564
  result = Gosu::scale(arg1);
3581
- } catch(const std::runtime_error& e) {
3565
+ } catch (const std::exception& e) {
3582
3566
  SWIG_exception(SWIG_RuntimeError, e.what());
3583
3567
  }
3584
3568
  }
@@ -3636,7 +3620,7 @@ _wrap_scale__SWIG_1(int argc, VALUE *argv, VALUE self) {
3636
3620
  {
3637
3621
  try {
3638
3622
  result = Gosu::scale(arg1,arg2,arg3,arg4);
3639
- } catch(const std::runtime_error& e) {
3623
+ } catch (const std::exception& e) {
3640
3624
  SWIG_exception(SWIG_RuntimeError, e.what());
3641
3625
  }
3642
3626
  }
@@ -3722,7 +3706,7 @@ _wrap_language(int argc, VALUE *argv, VALUE self) {
3722
3706
  {
3723
3707
  try {
3724
3708
  result = Gosu::language();
3725
- } catch(const std::runtime_error& e) {
3709
+ } catch (const std::exception& e) {
3726
3710
  SWIG_exception(SWIG_RuntimeError, e.what());
3727
3711
  }
3728
3712
  }
@@ -3744,7 +3728,7 @@ _wrap_enable_undocumented_retrofication(int argc, VALUE *argv, VALUE self) {
3744
3728
  {
3745
3729
  try {
3746
3730
  Gosu::enableUndocumentedRetrofication();
3747
- } catch(const std::runtime_error& e) {
3731
+ } catch (const std::exception& e) {
3748
3732
  SWIG_exception(SWIG_RuntimeError, e.what());
3749
3733
  }
3750
3734
  }
@@ -3778,7 +3762,7 @@ _wrap_register_entity(int argc, VALUE *argv, VALUE self) {
3778
3762
  {
3779
3763
  try {
3780
3764
  Gosu::register_entity((std::wstring const &)*arg1,arg2);
3781
- } catch(const std::runtime_error& e) {
3765
+ } catch (const std::exception& e) {
3782
3766
  SWIG_exception(SWIG_RuntimeError, e.what());
3783
3767
  }
3784
3768
  }
@@ -3803,7 +3787,7 @@ _wrap_new_Color__SWIG_0(int argc, VALUE *argv, VALUE self) {
3803
3787
  result = (Gosu::Color *)new Gosu::Color();
3804
3788
  DATA_PTR(self) = result;
3805
3789
  SWIG_RubyAddTracking(result, self);
3806
- } catch(const std::runtime_error& e) {
3790
+ } catch (const std::exception& e) {
3807
3791
  SWIG_exception(SWIG_RuntimeError, e.what());
3808
3792
  }
3809
3793
  }
@@ -3834,7 +3818,7 @@ _wrap_new_Color__SWIG_1(int argc, VALUE *argv, VALUE self) {
3834
3818
  result = (Gosu::Color *)new Gosu::Color(arg1);
3835
3819
  DATA_PTR(self) = result;
3836
3820
  SWIG_RubyAddTracking(result, self);
3837
- } catch(const std::runtime_error& e) {
3821
+ } catch (const std::exception& e) {
3838
3822
  SWIG_exception(SWIG_RuntimeError, e.what());
3839
3823
  }
3840
3824
  }
@@ -3849,39 +3833,27 @@ _wrap_new_Color__SWIG_2(int argc, VALUE *argv, VALUE self) {
3849
3833
  Gosu::Color::Channel arg1 ;
3850
3834
  Gosu::Color::Channel arg2 ;
3851
3835
  Gosu::Color::Channel arg3 ;
3852
- unsigned char val1 ;
3853
- int ecode1 = 0 ;
3854
- unsigned char val2 ;
3855
- int ecode2 = 0 ;
3856
- unsigned char val3 ;
3857
- int ecode3 = 0 ;
3858
3836
  const char *classname SWIGUNUSED = "Gosu::Color";
3859
3837
  Gosu::Color *result = 0 ;
3860
3838
 
3861
3839
  if ((argc < 3) || (argc > 3)) {
3862
3840
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
3863
3841
  }
3864
- ecode1 = SWIG_AsVal_unsigned_SS_char(argv[0], &val1);
3865
- if (!SWIG_IsOK(ecode1)) {
3866
- SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu::Color", 1, argv[0] ));
3867
- }
3868
- arg1 = static_cast< Gosu::Color::Channel >(val1);
3869
- ecode2 = SWIG_AsVal_unsigned_SS_char(argv[1], &val2);
3870
- if (!SWIG_IsOK(ecode2)) {
3871
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu::Color", 2, argv[1] ));
3872
- }
3873
- arg2 = static_cast< Gosu::Color::Channel >(val2);
3874
- ecode3 = SWIG_AsVal_unsigned_SS_char(argv[2], &val3);
3875
- if (!SWIG_IsOK(ecode3)) {
3876
- SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu::Color", 3, argv[2] ));
3877
- }
3878
- arg3 = static_cast< Gosu::Color::Channel >(val3);
3842
+ {
3843
+ arg1 = Gosu::clamp<int>(NUM2ULONG(argv[0]), 0, 255);
3844
+ }
3845
+ {
3846
+ arg2 = Gosu::clamp<int>(NUM2ULONG(argv[1]), 0, 255);
3847
+ }
3848
+ {
3849
+ arg3 = Gosu::clamp<int>(NUM2ULONG(argv[2]), 0, 255);
3850
+ }
3879
3851
  {
3880
3852
  try {
3881
3853
  result = (Gosu::Color *)new Gosu::Color(arg1,arg2,arg3);
3882
3854
  DATA_PTR(self) = result;
3883
3855
  SWIG_RubyAddTracking(result, self);
3884
- } catch(const std::runtime_error& e) {
3856
+ } catch (const std::exception& e) {
3885
3857
  SWIG_exception(SWIG_RuntimeError, e.what());
3886
3858
  }
3887
3859
  }
@@ -3914,46 +3886,30 @@ _wrap_new_Color__SWIG_3(int argc, VALUE *argv, VALUE self) {
3914
3886
  Gosu::Color::Channel arg2 ;
3915
3887
  Gosu::Color::Channel arg3 ;
3916
3888
  Gosu::Color::Channel arg4 ;
3917
- unsigned char val1 ;
3918
- int ecode1 = 0 ;
3919
- unsigned char val2 ;
3920
- int ecode2 = 0 ;
3921
- unsigned char val3 ;
3922
- int ecode3 = 0 ;
3923
- unsigned char val4 ;
3924
- int ecode4 = 0 ;
3925
3889
  const char *classname SWIGUNUSED = "Gosu::Color";
3926
3890
  Gosu::Color *result = 0 ;
3927
3891
 
3928
3892
  if ((argc < 4) || (argc > 4)) {
3929
3893
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
3930
3894
  }
3931
- ecode1 = SWIG_AsVal_unsigned_SS_char(argv[0], &val1);
3932
- if (!SWIG_IsOK(ecode1)) {
3933
- SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu::Color", 1, argv[0] ));
3934
- }
3935
- arg1 = static_cast< Gosu::Color::Channel >(val1);
3936
- ecode2 = SWIG_AsVal_unsigned_SS_char(argv[1], &val2);
3937
- if (!SWIG_IsOK(ecode2)) {
3938
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu::Color", 2, argv[1] ));
3939
- }
3940
- arg2 = static_cast< Gosu::Color::Channel >(val2);
3941
- ecode3 = SWIG_AsVal_unsigned_SS_char(argv[2], &val3);
3942
- if (!SWIG_IsOK(ecode3)) {
3943
- SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu::Color", 3, argv[2] ));
3944
- }
3945
- arg3 = static_cast< Gosu::Color::Channel >(val3);
3946
- ecode4 = SWIG_AsVal_unsigned_SS_char(argv[3], &val4);
3947
- if (!SWIG_IsOK(ecode4)) {
3948
- SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu::Color", 4, argv[3] ));
3949
- }
3950
- arg4 = static_cast< Gosu::Color::Channel >(val4);
3895
+ {
3896
+ arg1 = Gosu::clamp<int>(NUM2ULONG(argv[0]), 0, 255);
3897
+ }
3898
+ {
3899
+ arg2 = Gosu::clamp<int>(NUM2ULONG(argv[1]), 0, 255);
3900
+ }
3901
+ {
3902
+ arg3 = Gosu::clamp<int>(NUM2ULONG(argv[2]), 0, 255);
3903
+ }
3904
+ {
3905
+ arg4 = Gosu::clamp<int>(NUM2ULONG(argv[3]), 0, 255);
3906
+ }
3951
3907
  {
3952
3908
  try {
3953
3909
  result = (Gosu::Color *)new Gosu::Color(arg1,arg2,arg3,arg4);
3954
3910
  DATA_PTR(self) = result;
3955
3911
  SWIG_RubyAddTracking(result, self);
3956
- } catch(const std::runtime_error& e) {
3912
+ } catch (const std::exception& e) {
3957
3913
  SWIG_exception(SWIG_RuntimeError, e.what());
3958
3914
  }
3959
3915
  }
@@ -3989,18 +3945,15 @@ SWIGINTERN VALUE _wrap_new_Color(int nargs, VALUE *args, VALUE self) {
3989
3945
  if (argc == 3) {
3990
3946
  int _v;
3991
3947
  {
3992
- int res = SWIG_AsVal_unsigned_SS_char(argv[0], NULL);
3993
- _v = SWIG_CheckState(res);
3948
+ _v = !!rb_respond_to(argv[0], rb_intern("to_i"));
3994
3949
  }
3995
3950
  if (_v) {
3996
3951
  {
3997
- int res = SWIG_AsVal_unsigned_SS_char(argv[1], NULL);
3998
- _v = SWIG_CheckState(res);
3952
+ _v = !!rb_respond_to(argv[1], rb_intern("to_i"));
3999
3953
  }
4000
3954
  if (_v) {
4001
3955
  {
4002
- int res = SWIG_AsVal_unsigned_SS_char(argv[2], NULL);
4003
- _v = SWIG_CheckState(res);
3956
+ _v = !!rb_respond_to(argv[2], rb_intern("to_i"));
4004
3957
  }
4005
3958
  if (_v) {
4006
3959
  return _wrap_new_Color__SWIG_2(nargs, args, self);
@@ -4011,23 +3964,19 @@ SWIGINTERN VALUE _wrap_new_Color(int nargs, VALUE *args, VALUE self) {
4011
3964
  if (argc == 4) {
4012
3965
  int _v;
4013
3966
  {
4014
- int res = SWIG_AsVal_unsigned_SS_char(argv[0], NULL);
4015
- _v = SWIG_CheckState(res);
3967
+ _v = !!rb_respond_to(argv[0], rb_intern("to_i"));
4016
3968
  }
4017
3969
  if (_v) {
4018
3970
  {
4019
- int res = SWIG_AsVal_unsigned_SS_char(argv[1], NULL);
4020
- _v = SWIG_CheckState(res);
3971
+ _v = !!rb_respond_to(argv[1], rb_intern("to_i"));
4021
3972
  }
4022
3973
  if (_v) {
4023
3974
  {
4024
- int res = SWIG_AsVal_unsigned_SS_char(argv[2], NULL);
4025
- _v = SWIG_CheckState(res);
3975
+ _v = !!rb_respond_to(argv[2], rb_intern("to_i"));
4026
3976
  }
4027
3977
  if (_v) {
4028
3978
  {
4029
- int res = SWIG_AsVal_unsigned_SS_char(argv[3], NULL);
4030
- _v = SWIG_CheckState(res);
3979
+ _v = !!rb_respond_to(argv[3], rb_intern("to_i"));
4031
3980
  }
4032
3981
  if (_v) {
4033
3982
  return _wrap_new_Color__SWIG_3(nargs, args, self);
@@ -4083,7 +4032,7 @@ _wrap_Color_from_hsv(int argc, VALUE *argv, VALUE self) {
4083
4032
  {
4084
4033
  try {
4085
4034
  result = Gosu::Color::fromHSV(arg1,arg2,arg3);
4086
- } catch(const std::runtime_error& e) {
4035
+ } catch (const std::exception& e) {
4087
4036
  SWIG_exception(SWIG_RuntimeError, e.what());
4088
4037
  }
4089
4038
  }
@@ -4100,8 +4049,6 @@ _wrap_Color_from_ahsv(int argc, VALUE *argv, VALUE self) {
4100
4049
  double arg2 ;
4101
4050
  double arg3 ;
4102
4051
  double arg4 ;
4103
- unsigned char val1 ;
4104
- int ecode1 = 0 ;
4105
4052
  double val2 ;
4106
4053
  int ecode2 = 0 ;
4107
4054
  double val3 ;
@@ -4114,11 +4061,9 @@ _wrap_Color_from_ahsv(int argc, VALUE *argv, VALUE self) {
4114
4061
  if ((argc < 4) || (argc > 4)) {
4115
4062
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
4116
4063
  }
4117
- ecode1 = SWIG_AsVal_unsigned_SS_char(argv[0], &val1);
4118
- if (!SWIG_IsOK(ecode1)) {
4119
- SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu::Color::fromAHSV", 1, argv[0] ));
4120
- }
4121
- arg1 = static_cast< Gosu::Color::Channel >(val1);
4064
+ {
4065
+ arg1 = Gosu::clamp<int>(NUM2ULONG(argv[0]), 0, 255);
4066
+ }
4122
4067
  ecode2 = SWIG_AsVal_double(argv[1], &val2);
4123
4068
  if (!SWIG_IsOK(ecode2)) {
4124
4069
  SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","Gosu::Color::fromAHSV", 2, argv[1] ));
@@ -4137,7 +4082,7 @@ _wrap_Color_from_ahsv(int argc, VALUE *argv, VALUE self) {
4137
4082
  {
4138
4083
  try {
4139
4084
  result = Gosu::Color::fromAHSV(arg1,arg2,arg3,arg4);
4140
- } catch(const std::runtime_error& e) {
4085
+ } catch (const std::exception& e) {
4141
4086
  SWIG_exception(SWIG_RuntimeError, e.what());
4142
4087
  }
4143
4088
  }
@@ -4167,7 +4112,7 @@ _wrap_Color_red(int argc, VALUE *argv, VALUE self) {
4167
4112
  {
4168
4113
  try {
4169
4114
  result = ((Gosu::Color const *)arg1)->red();
4170
- } catch(const std::runtime_error& e) {
4115
+ } catch (const std::exception& e) {
4171
4116
  SWIG_exception(SWIG_RuntimeError, e.what());
4172
4117
  }
4173
4118
  }
@@ -4197,7 +4142,7 @@ _wrap_Color_green(int argc, VALUE *argv, VALUE self) {
4197
4142
  {
4198
4143
  try {
4199
4144
  result = ((Gosu::Color const *)arg1)->green();
4200
- } catch(const std::runtime_error& e) {
4145
+ } catch (const std::exception& e) {
4201
4146
  SWIG_exception(SWIG_RuntimeError, e.what());
4202
4147
  }
4203
4148
  }
@@ -4227,7 +4172,7 @@ _wrap_Color_blue(int argc, VALUE *argv, VALUE self) {
4227
4172
  {
4228
4173
  try {
4229
4174
  result = ((Gosu::Color const *)arg1)->blue();
4230
- } catch(const std::runtime_error& e) {
4175
+ } catch (const std::exception& e) {
4231
4176
  SWIG_exception(SWIG_RuntimeError, e.what());
4232
4177
  }
4233
4178
  }
@@ -4257,7 +4202,7 @@ _wrap_Color_alpha(int argc, VALUE *argv, VALUE self) {
4257
4202
  {
4258
4203
  try {
4259
4204
  result = ((Gosu::Color const *)arg1)->alpha();
4260
- } catch(const std::runtime_error& e) {
4205
+ } catch (const std::exception& e) {
4261
4206
  SWIG_exception(SWIG_RuntimeError, e.what());
4262
4207
  }
4263
4208
  }
@@ -4274,8 +4219,6 @@ _wrap_Color_rede___(int argc, VALUE *argv, VALUE self) {
4274
4219
  Gosu::Color::Channel arg2 ;
4275
4220
  void *argp1 = 0 ;
4276
4221
  int res1 = 0 ;
4277
- unsigned char val2 ;
4278
- int ecode2 = 0 ;
4279
4222
 
4280
4223
  if ((argc < 1) || (argc > 1)) {
4281
4224
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
@@ -4285,15 +4228,13 @@ _wrap_Color_rede___(int argc, VALUE *argv, VALUE self) {
4285
4228
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::Color *","setRed", 1, self ));
4286
4229
  }
4287
4230
  arg1 = reinterpret_cast< Gosu::Color * >(argp1);
4288
- ecode2 = SWIG_AsVal_unsigned_SS_char(argv[0], &val2);
4289
- if (!SWIG_IsOK(ecode2)) {
4290
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "Gosu::Color::Channel","setRed", 2, argv[0] ));
4291
- }
4292
- arg2 = static_cast< Gosu::Color::Channel >(val2);
4231
+ {
4232
+ arg2 = Gosu::clamp<int>(NUM2ULONG(argv[0]), 0, 255);
4233
+ }
4293
4234
  {
4294
4235
  try {
4295
4236
  (arg1)->setRed(arg2);
4296
- } catch(const std::runtime_error& e) {
4237
+ } catch (const std::exception& e) {
4297
4238
  SWIG_exception(SWIG_RuntimeError, e.what());
4298
4239
  }
4299
4240
  }
@@ -4309,8 +4250,6 @@ _wrap_Color_greene___(int argc, VALUE *argv, VALUE self) {
4309
4250
  Gosu::Color::Channel arg2 ;
4310
4251
  void *argp1 = 0 ;
4311
4252
  int res1 = 0 ;
4312
- unsigned char val2 ;
4313
- int ecode2 = 0 ;
4314
4253
 
4315
4254
  if ((argc < 1) || (argc > 1)) {
4316
4255
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
@@ -4320,15 +4259,13 @@ _wrap_Color_greene___(int argc, VALUE *argv, VALUE self) {
4320
4259
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::Color *","setGreen", 1, self ));
4321
4260
  }
4322
4261
  arg1 = reinterpret_cast< Gosu::Color * >(argp1);
4323
- ecode2 = SWIG_AsVal_unsigned_SS_char(argv[0], &val2);
4324
- if (!SWIG_IsOK(ecode2)) {
4325
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "Gosu::Color::Channel","setGreen", 2, argv[0] ));
4326
- }
4327
- arg2 = static_cast< Gosu::Color::Channel >(val2);
4262
+ {
4263
+ arg2 = Gosu::clamp<int>(NUM2ULONG(argv[0]), 0, 255);
4264
+ }
4328
4265
  {
4329
4266
  try {
4330
4267
  (arg1)->setGreen(arg2);
4331
- } catch(const std::runtime_error& e) {
4268
+ } catch (const std::exception& e) {
4332
4269
  SWIG_exception(SWIG_RuntimeError, e.what());
4333
4270
  }
4334
4271
  }
@@ -4344,8 +4281,6 @@ _wrap_Color_bluee___(int argc, VALUE *argv, VALUE self) {
4344
4281
  Gosu::Color::Channel arg2 ;
4345
4282
  void *argp1 = 0 ;
4346
4283
  int res1 = 0 ;
4347
- unsigned char val2 ;
4348
- int ecode2 = 0 ;
4349
4284
 
4350
4285
  if ((argc < 1) || (argc > 1)) {
4351
4286
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
@@ -4355,15 +4290,13 @@ _wrap_Color_bluee___(int argc, VALUE *argv, VALUE self) {
4355
4290
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::Color *","setBlue", 1, self ));
4356
4291
  }
4357
4292
  arg1 = reinterpret_cast< Gosu::Color * >(argp1);
4358
- ecode2 = SWIG_AsVal_unsigned_SS_char(argv[0], &val2);
4359
- if (!SWIG_IsOK(ecode2)) {
4360
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "Gosu::Color::Channel","setBlue", 2, argv[0] ));
4361
- }
4362
- arg2 = static_cast< Gosu::Color::Channel >(val2);
4293
+ {
4294
+ arg2 = Gosu::clamp<int>(NUM2ULONG(argv[0]), 0, 255);
4295
+ }
4363
4296
  {
4364
4297
  try {
4365
4298
  (arg1)->setBlue(arg2);
4366
- } catch(const std::runtime_error& e) {
4299
+ } catch (const std::exception& e) {
4367
4300
  SWIG_exception(SWIG_RuntimeError, e.what());
4368
4301
  }
4369
4302
  }
@@ -4379,8 +4312,6 @@ _wrap_Color_alphae___(int argc, VALUE *argv, VALUE self) {
4379
4312
  Gosu::Color::Channel arg2 ;
4380
4313
  void *argp1 = 0 ;
4381
4314
  int res1 = 0 ;
4382
- unsigned char val2 ;
4383
- int ecode2 = 0 ;
4384
4315
 
4385
4316
  if ((argc < 1) || (argc > 1)) {
4386
4317
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
@@ -4390,15 +4321,13 @@ _wrap_Color_alphae___(int argc, VALUE *argv, VALUE self) {
4390
4321
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::Color *","setAlpha", 1, self ));
4391
4322
  }
4392
4323
  arg1 = reinterpret_cast< Gosu::Color * >(argp1);
4393
- ecode2 = SWIG_AsVal_unsigned_SS_char(argv[0], &val2);
4394
- if (!SWIG_IsOK(ecode2)) {
4395
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "Gosu::Color::Channel","setAlpha", 2, argv[0] ));
4396
- }
4397
- arg2 = static_cast< Gosu::Color::Channel >(val2);
4324
+ {
4325
+ arg2 = Gosu::clamp<int>(NUM2ULONG(argv[0]), 0, 255);
4326
+ }
4398
4327
  {
4399
4328
  try {
4400
4329
  (arg1)->setAlpha(arg2);
4401
- } catch(const std::runtime_error& e) {
4330
+ } catch (const std::exception& e) {
4402
4331
  SWIG_exception(SWIG_RuntimeError, e.what());
4403
4332
  }
4404
4333
  }
@@ -4427,7 +4356,7 @@ _wrap_Color_hue(int argc, VALUE *argv, VALUE self) {
4427
4356
  {
4428
4357
  try {
4429
4358
  result = (double)((Gosu::Color const *)arg1)->hue();
4430
- } catch(const std::runtime_error& e) {
4359
+ } catch (const std::exception& e) {
4431
4360
  SWIG_exception(SWIG_RuntimeError, e.what());
4432
4361
  }
4433
4362
  }
@@ -4463,7 +4392,7 @@ _wrap_Color_huee___(int argc, VALUE *argv, VALUE self) {
4463
4392
  {
4464
4393
  try {
4465
4394
  (arg1)->setHue(arg2);
4466
- } catch(const std::runtime_error& e) {
4395
+ } catch (const std::exception& e) {
4467
4396
  SWIG_exception(SWIG_RuntimeError, e.what());
4468
4397
  }
4469
4398
  }
@@ -4492,7 +4421,7 @@ _wrap_Color_saturation(int argc, VALUE *argv, VALUE self) {
4492
4421
  {
4493
4422
  try {
4494
4423
  result = (double)((Gosu::Color const *)arg1)->saturation();
4495
- } catch(const std::runtime_error& e) {
4424
+ } catch (const std::exception& e) {
4496
4425
  SWIG_exception(SWIG_RuntimeError, e.what());
4497
4426
  }
4498
4427
  }
@@ -4528,7 +4457,7 @@ _wrap_Color_saturatione___(int argc, VALUE *argv, VALUE self) {
4528
4457
  {
4529
4458
  try {
4530
4459
  (arg1)->setSaturation(arg2);
4531
- } catch(const std::runtime_error& e) {
4460
+ } catch (const std::exception& e) {
4532
4461
  SWIG_exception(SWIG_RuntimeError, e.what());
4533
4462
  }
4534
4463
  }
@@ -4557,7 +4486,7 @@ _wrap_Color_value(int argc, VALUE *argv, VALUE self) {
4557
4486
  {
4558
4487
  try {
4559
4488
  result = (double)((Gosu::Color const *)arg1)->value();
4560
- } catch(const std::runtime_error& e) {
4489
+ } catch (const std::exception& e) {
4561
4490
  SWIG_exception(SWIG_RuntimeError, e.what());
4562
4491
  }
4563
4492
  }
@@ -4593,7 +4522,7 @@ _wrap_Color_valuee___(int argc, VALUE *argv, VALUE self) {
4593
4522
  {
4594
4523
  try {
4595
4524
  (arg1)->setValue(arg2);
4596
- } catch(const std::runtime_error& e) {
4525
+ } catch (const std::exception& e) {
4597
4526
  SWIG_exception(SWIG_RuntimeError, e.what());
4598
4527
  }
4599
4528
  }
@@ -4622,7 +4551,7 @@ _wrap_Color_argb__SWIG_0(int argc, VALUE *argv, VALUE self) {
4622
4551
  {
4623
4552
  try {
4624
4553
  result = ((Gosu::Color const *)arg1)->argb();
4625
- } catch(const std::runtime_error& e) {
4554
+ } catch (const std::exception& e) {
4626
4555
  SWIG_exception(SWIG_RuntimeError, e.what());
4627
4556
  }
4628
4557
  }
@@ -4652,7 +4581,7 @@ _wrap_Color_bgr(int argc, VALUE *argv, VALUE self) {
4652
4581
  {
4653
4582
  try {
4654
4583
  result = ((Gosu::Color const *)arg1)->bgr();
4655
- } catch(const std::runtime_error& e) {
4584
+ } catch (const std::exception& e) {
4656
4585
  SWIG_exception(SWIG_RuntimeError, e.what());
4657
4586
  }
4658
4587
  }
@@ -4682,7 +4611,7 @@ _wrap_Color_abgr(int argc, VALUE *argv, VALUE self) {
4682
4611
  {
4683
4612
  try {
4684
4613
  result = ((Gosu::Color const *)arg1)->abgr();
4685
- } catch(const std::runtime_error& e) {
4614
+ } catch (const std::exception& e) {
4686
4615
  SWIG_exception(SWIG_RuntimeError, e.what());
4687
4616
  }
4688
4617
  }
@@ -4712,7 +4641,7 @@ _wrap_Color_gl(int argc, VALUE *argv, VALUE self) {
4712
4641
  {
4713
4642
  try {
4714
4643
  result = ((Gosu::Color const *)arg1)->gl();
4715
- } catch(const std::runtime_error& e) {
4644
+ } catch (const std::exception& e) {
4716
4645
  SWIG_exception(SWIG_RuntimeError, e.what());
4717
4646
  }
4718
4647
  }
@@ -4728,37 +4657,25 @@ _wrap_Color_rgb(int argc, VALUE *argv, VALUE self) {
4728
4657
  Gosu::Color::Channel arg1 ;
4729
4658
  Gosu::Color::Channel arg2 ;
4730
4659
  Gosu::Color::Channel arg3 ;
4731
- unsigned char val1 ;
4732
- int ecode1 = 0 ;
4733
- unsigned char val2 ;
4734
- int ecode2 = 0 ;
4735
- unsigned char val3 ;
4736
- int ecode3 = 0 ;
4737
4660
  Gosu::Color result;
4738
4661
  VALUE vresult = Qnil;
4739
4662
 
4740
4663
  if ((argc < 3) || (argc > 3)) {
4741
4664
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
4742
4665
  }
4743
- ecode1 = SWIG_AsVal_unsigned_SS_char(argv[0], &val1);
4744
- if (!SWIG_IsOK(ecode1)) {
4745
- SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu_Color_rgb", 1, argv[0] ));
4746
- }
4747
- arg1 = static_cast< Gosu::Color::Channel >(val1);
4748
- ecode2 = SWIG_AsVal_unsigned_SS_char(argv[1], &val2);
4749
- if (!SWIG_IsOK(ecode2)) {
4750
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu_Color_rgb", 2, argv[1] ));
4751
- }
4752
- arg2 = static_cast< Gosu::Color::Channel >(val2);
4753
- ecode3 = SWIG_AsVal_unsigned_SS_char(argv[2], &val3);
4754
- if (!SWIG_IsOK(ecode3)) {
4755
- SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu_Color_rgb", 3, argv[2] ));
4756
- }
4757
- arg3 = static_cast< Gosu::Color::Channel >(val3);
4666
+ {
4667
+ arg1 = Gosu::clamp<int>(NUM2ULONG(argv[0]), 0, 255);
4668
+ }
4669
+ {
4670
+ arg2 = Gosu::clamp<int>(NUM2ULONG(argv[1]), 0, 255);
4671
+ }
4672
+ {
4673
+ arg3 = Gosu::clamp<int>(NUM2ULONG(argv[2]), 0, 255);
4674
+ }
4758
4675
  {
4759
4676
  try {
4760
4677
  result = Gosu_Color_rgb(arg1,arg2,arg3);
4761
- } catch(const std::runtime_error& e) {
4678
+ } catch (const std::exception& e) {
4762
4679
  SWIG_exception(SWIG_RuntimeError, e.what());
4763
4680
  }
4764
4681
  }
@@ -4775,44 +4692,28 @@ _wrap_Color_rgba__SWIG_0(int argc, VALUE *argv, VALUE self) {
4775
4692
  Gosu::Color::Channel arg2 ;
4776
4693
  Gosu::Color::Channel arg3 ;
4777
4694
  Gosu::Color::Channel arg4 ;
4778
- unsigned char val1 ;
4779
- int ecode1 = 0 ;
4780
- unsigned char val2 ;
4781
- int ecode2 = 0 ;
4782
- unsigned char val3 ;
4783
- int ecode3 = 0 ;
4784
- unsigned char val4 ;
4785
- int ecode4 = 0 ;
4786
4695
  Gosu::Color result;
4787
4696
  VALUE vresult = Qnil;
4788
4697
 
4789
4698
  if ((argc < 4) || (argc > 4)) {
4790
4699
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
4791
4700
  }
4792
- ecode1 = SWIG_AsVal_unsigned_SS_char(argv[0], &val1);
4793
- if (!SWIG_IsOK(ecode1)) {
4794
- SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu_Color_rgba__SWIG_0", 1, argv[0] ));
4795
- }
4796
- arg1 = static_cast< Gosu::Color::Channel >(val1);
4797
- ecode2 = SWIG_AsVal_unsigned_SS_char(argv[1], &val2);
4798
- if (!SWIG_IsOK(ecode2)) {
4799
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu_Color_rgba__SWIG_0", 2, argv[1] ));
4800
- }
4801
- arg2 = static_cast< Gosu::Color::Channel >(val2);
4802
- ecode3 = SWIG_AsVal_unsigned_SS_char(argv[2], &val3);
4803
- if (!SWIG_IsOK(ecode3)) {
4804
- SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu_Color_rgba__SWIG_0", 3, argv[2] ));
4805
- }
4806
- arg3 = static_cast< Gosu::Color::Channel >(val3);
4807
- ecode4 = SWIG_AsVal_unsigned_SS_char(argv[3], &val4);
4808
- if (!SWIG_IsOK(ecode4)) {
4809
- SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu_Color_rgba__SWIG_0", 4, argv[3] ));
4810
- }
4811
- arg4 = static_cast< Gosu::Color::Channel >(val4);
4701
+ {
4702
+ arg1 = Gosu::clamp<int>(NUM2ULONG(argv[0]), 0, 255);
4703
+ }
4704
+ {
4705
+ arg2 = Gosu::clamp<int>(NUM2ULONG(argv[1]), 0, 255);
4706
+ }
4707
+ {
4708
+ arg3 = Gosu::clamp<int>(NUM2ULONG(argv[2]), 0, 255);
4709
+ }
4710
+ {
4711
+ arg4 = Gosu::clamp<int>(NUM2ULONG(argv[3]), 0, 255);
4712
+ }
4812
4713
  {
4813
4714
  try {
4814
4715
  result = Gosu_Color_rgba__SWIG_0(arg1,arg2,arg3,arg4);
4815
- } catch(const std::runtime_error& e) {
4716
+ } catch (const std::exception& e) {
4816
4717
  SWIG_exception(SWIG_RuntimeError, e.what());
4817
4718
  }
4818
4719
  }
@@ -4842,7 +4743,7 @@ _wrap_Color_rgba__SWIG_1(int argc, VALUE *argv, VALUE self) {
4842
4743
  {
4843
4744
  try {
4844
4745
  result = Gosu_Color_rgba__SWIG_1(arg1);
4845
- } catch(const std::runtime_error& e) {
4746
+ } catch (const std::exception& e) {
4846
4747
  SWIG_exception(SWIG_RuntimeError, e.what());
4847
4748
  }
4848
4749
  }
@@ -4876,23 +4777,19 @@ SWIGINTERN VALUE _wrap_Color_rgba(int nargs, VALUE *args, VALUE self) {
4876
4777
  if (argc == 4) {
4877
4778
  int _v;
4878
4779
  {
4879
- int res = SWIG_AsVal_unsigned_SS_char(argv[0], NULL);
4880
- _v = SWIG_CheckState(res);
4780
+ _v = !!rb_respond_to(argv[0], rb_intern("to_i"));
4881
4781
  }
4882
4782
  if (_v) {
4883
4783
  {
4884
- int res = SWIG_AsVal_unsigned_SS_char(argv[1], NULL);
4885
- _v = SWIG_CheckState(res);
4784
+ _v = !!rb_respond_to(argv[1], rb_intern("to_i"));
4886
4785
  }
4887
4786
  if (_v) {
4888
4787
  {
4889
- int res = SWIG_AsVal_unsigned_SS_char(argv[2], NULL);
4890
- _v = SWIG_CheckState(res);
4788
+ _v = !!rb_respond_to(argv[2], rb_intern("to_i"));
4891
4789
  }
4892
4790
  if (_v) {
4893
4791
  {
4894
- int res = SWIG_AsVal_unsigned_SS_char(argv[3], NULL);
4895
- _v = SWIG_CheckState(res);
4792
+ _v = !!rb_respond_to(argv[3], rb_intern("to_i"));
4896
4793
  }
4897
4794
  if (_v) {
4898
4795
  return _wrap_Color_rgba__SWIG_0(nargs, args, self);
@@ -4917,44 +4814,28 @@ _wrap_Color_argb__SWIG_1(int argc, VALUE *argv, VALUE self) {
4917
4814
  Gosu::Color::Channel arg2 ;
4918
4815
  Gosu::Color::Channel arg3 ;
4919
4816
  Gosu::Color::Channel arg4 ;
4920
- unsigned char val1 ;
4921
- int ecode1 = 0 ;
4922
- unsigned char val2 ;
4923
- int ecode2 = 0 ;
4924
- unsigned char val3 ;
4925
- int ecode3 = 0 ;
4926
- unsigned char val4 ;
4927
- int ecode4 = 0 ;
4928
4817
  Gosu::Color result;
4929
4818
  VALUE vresult = Qnil;
4930
4819
 
4931
4820
  if ((argc < 4) || (argc > 4)) {
4932
4821
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
4933
4822
  }
4934
- ecode1 = SWIG_AsVal_unsigned_SS_char(argv[0], &val1);
4935
- if (!SWIG_IsOK(ecode1)) {
4936
- SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu_Color_argb__SWIG_1", 1, argv[0] ));
4937
- }
4938
- arg1 = static_cast< Gosu::Color::Channel >(val1);
4939
- ecode2 = SWIG_AsVal_unsigned_SS_char(argv[1], &val2);
4940
- if (!SWIG_IsOK(ecode2)) {
4941
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu_Color_argb__SWIG_1", 2, argv[1] ));
4942
- }
4943
- arg2 = static_cast< Gosu::Color::Channel >(val2);
4944
- ecode3 = SWIG_AsVal_unsigned_SS_char(argv[2], &val3);
4945
- if (!SWIG_IsOK(ecode3)) {
4946
- SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu_Color_argb__SWIG_1", 3, argv[2] ));
4947
- }
4948
- arg3 = static_cast< Gosu::Color::Channel >(val3);
4949
- ecode4 = SWIG_AsVal_unsigned_SS_char(argv[3], &val4);
4950
- if (!SWIG_IsOK(ecode4)) {
4951
- SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "Gosu::Color::Channel","Gosu_Color_argb__SWIG_1", 4, argv[3] ));
4952
- }
4953
- arg4 = static_cast< Gosu::Color::Channel >(val4);
4823
+ {
4824
+ arg1 = Gosu::clamp<int>(NUM2ULONG(argv[0]), 0, 255);
4825
+ }
4826
+ {
4827
+ arg2 = Gosu::clamp<int>(NUM2ULONG(argv[1]), 0, 255);
4828
+ }
4829
+ {
4830
+ arg3 = Gosu::clamp<int>(NUM2ULONG(argv[2]), 0, 255);
4831
+ }
4832
+ {
4833
+ arg4 = Gosu::clamp<int>(NUM2ULONG(argv[3]), 0, 255);
4834
+ }
4954
4835
  {
4955
4836
  try {
4956
4837
  result = Gosu_Color_argb__SWIG_1(arg1,arg2,arg3,arg4);
4957
- } catch(const std::runtime_error& e) {
4838
+ } catch (const std::exception& e) {
4958
4839
  SWIG_exception(SWIG_RuntimeError, e.what());
4959
4840
  }
4960
4841
  }
@@ -4984,7 +4865,7 @@ _wrap_Color_argb__SWIG_2(int argc, VALUE *argv, VALUE self) {
4984
4865
  {
4985
4866
  try {
4986
4867
  result = Gosu_Color_argb__SWIG_2(arg1);
4987
- } catch(const std::runtime_error& e) {
4868
+ } catch (const std::exception& e) {
4988
4869
  SWIG_exception(SWIG_RuntimeError, e.what());
4989
4870
  }
4990
4871
  }
@@ -5027,23 +4908,19 @@ SWIGINTERN VALUE _wrap_Color_argb(int nargs, VALUE *args, VALUE self) {
5027
4908
  if (argc == 4) {
5028
4909
  int _v;
5029
4910
  {
5030
- int res = SWIG_AsVal_unsigned_SS_char(argv[0], NULL);
5031
- _v = SWIG_CheckState(res);
4911
+ _v = !!rb_respond_to(argv[0], rb_intern("to_i"));
5032
4912
  }
5033
4913
  if (_v) {
5034
4914
  {
5035
- int res = SWIG_AsVal_unsigned_SS_char(argv[1], NULL);
5036
- _v = SWIG_CheckState(res);
4915
+ _v = !!rb_respond_to(argv[1], rb_intern("to_i"));
5037
4916
  }
5038
4917
  if (_v) {
5039
4918
  {
5040
- int res = SWIG_AsVal_unsigned_SS_char(argv[2], NULL);
5041
- _v = SWIG_CheckState(res);
4919
+ _v = !!rb_respond_to(argv[2], rb_intern("to_i"));
5042
4920
  }
5043
4921
  if (_v) {
5044
4922
  {
5045
- int res = SWIG_AsVal_unsigned_SS_char(argv[3], NULL);
5046
- _v = SWIG_CheckState(res);
4923
+ _v = !!rb_respond_to(argv[3], rb_intern("to_i"));
5047
4924
  }
5048
4925
  if (_v) {
5049
4926
  return _wrap_Color_argb__SWIG_1(nargs, args, self);
@@ -5091,7 +4968,7 @@ _wrap_Color_dup(int argc, VALUE *argv, VALUE self) {
5091
4968
  {
5092
4969
  try {
5093
4970
  result = Gosu_Color_dup((Gosu::Color const *)arg1);
5094
- } catch(const std::runtime_error& e) {
4971
+ } catch (const std::exception& e) {
5095
4972
  SWIG_exception(SWIG_RuntimeError, e.what());
5096
4973
  }
5097
4974
  }
@@ -5121,7 +4998,7 @@ _wrap_Color_to_s(int argc, VALUE *argv, VALUE self) {
5121
4998
  {
5122
4999
  try {
5123
5000
  result = Gosu_Color_toS((Gosu::Color const *)arg1);
5124
- } catch(const std::runtime_error& e) {
5001
+ } catch (const std::exception& e) {
5125
5002
  SWIG_exception(SWIG_RuntimeError, e.what());
5126
5003
  }
5127
5004
  }
@@ -5162,7 +5039,7 @@ _wrap_Color___eq__(int argc, VALUE *argv, VALUE self) {
5162
5039
  {
5163
5040
  try {
5164
5041
  result = (bool)Gosu_Color_operator_Se__Se_(arg1,arg2);
5165
- } catch(const std::runtime_error& e) {
5042
+ } catch (const std::exception& e) {
5166
5043
  SWIG_exception(SWIG_RuntimeError, e.what());
5167
5044
  }
5168
5045
  }
@@ -5194,7 +5071,7 @@ _wrap_interpolate(int argc, VALUE *argv, VALUE self) {
5194
5071
  }
5195
5072
  {
5196
5073
  if (TYPE(argv[0]) == T_FIXNUM || TYPE(argv[0]) == T_BIGNUM)
5197
- arg1 = Gosu::Color(NUM2UINT(argv[0]));
5074
+ arg1 = Gosu::Color(NUM2ULONG(argv[0]));
5198
5075
  else
5199
5076
  {
5200
5077
  void* ptr;
@@ -5209,7 +5086,7 @@ _wrap_interpolate(int argc, VALUE *argv, VALUE self) {
5209
5086
  }
5210
5087
  {
5211
5088
  if (TYPE(argv[1]) == T_FIXNUM || TYPE(argv[1]) == T_BIGNUM)
5212
- arg2 = Gosu::Color(NUM2UINT(argv[1]));
5089
+ arg2 = Gosu::Color(NUM2ULONG(argv[1]));
5213
5090
  else
5214
5091
  {
5215
5092
  void* ptr;
@@ -5232,7 +5109,7 @@ _wrap_interpolate(int argc, VALUE *argv, VALUE self) {
5232
5109
  {
5233
5110
  try {
5234
5111
  result = Gosu::interpolate(arg1,arg2,arg3);
5235
- } catch(const std::runtime_error& e) {
5112
+ } catch (const std::exception& e) {
5236
5113
  SWIG_exception(SWIG_RuntimeError, e.what());
5237
5114
  }
5238
5115
  }
@@ -5255,7 +5132,7 @@ _wrap_multiply(int argc, VALUE *argv, VALUE self) {
5255
5132
  }
5256
5133
  {
5257
5134
  if (TYPE(argv[0]) == T_FIXNUM || TYPE(argv[0]) == T_BIGNUM)
5258
- arg1 = Gosu::Color(NUM2UINT(argv[0]));
5135
+ arg1 = Gosu::Color(NUM2ULONG(argv[0]));
5259
5136
  else
5260
5137
  {
5261
5138
  void* ptr;
@@ -5270,7 +5147,7 @@ _wrap_multiply(int argc, VALUE *argv, VALUE self) {
5270
5147
  }
5271
5148
  {
5272
5149
  if (TYPE(argv[1]) == T_FIXNUM || TYPE(argv[1]) == T_BIGNUM)
5273
- arg2 = Gosu::Color(NUM2UINT(argv[1]));
5150
+ arg2 = Gosu::Color(NUM2ULONG(argv[1]));
5274
5151
  else
5275
5152
  {
5276
5153
  void* ptr;
@@ -5286,7 +5163,7 @@ _wrap_multiply(int argc, VALUE *argv, VALUE self) {
5286
5163
  {
5287
5164
  try {
5288
5165
  result = Gosu::multiply(arg1,arg2);
5289
- } catch(const std::runtime_error& e) {
5166
+ } catch (const std::exception& e) {
5290
5167
  SWIG_exception(SWIG_RuntimeError, e.what());
5291
5168
  }
5292
5169
  }
@@ -5417,7 +5294,7 @@ _wrap_Font_name(int argc, VALUE *argv, VALUE self) {
5417
5294
  {
5418
5295
  try {
5419
5296
  result = ((Gosu::Font const *)arg1)->name();
5420
- } catch(const std::runtime_error& e) {
5297
+ } catch (const std::exception& e) {
5421
5298
  SWIG_exception(SWIG_RuntimeError, e.what());
5422
5299
  }
5423
5300
  }
@@ -5450,7 +5327,7 @@ _wrap_Font_height(int argc, VALUE *argv, VALUE self) {
5450
5327
  {
5451
5328
  try {
5452
5329
  result = (unsigned int)((Gosu::Font const *)arg1)->height();
5453
- } catch(const std::runtime_error& e) {
5330
+ } catch (const std::exception& e) {
5454
5331
  SWIG_exception(SWIG_RuntimeError, e.what());
5455
5332
  }
5456
5333
  }
@@ -5480,7 +5357,7 @@ _wrap_Font_flags(int argc, VALUE *argv, VALUE self) {
5480
5357
  {
5481
5358
  try {
5482
5359
  result = (unsigned int)((Gosu::Font const *)arg1)->flags();
5483
- } catch(const std::runtime_error& e) {
5360
+ } catch (const std::exception& e) {
5484
5361
  SWIG_exception(SWIG_RuntimeError, e.what());
5485
5362
  }
5486
5363
  }
@@ -5527,7 +5404,7 @@ _wrap_Font_text_width(int argc, VALUE *argv, VALUE self) {
5527
5404
  {
5528
5405
  try {
5529
5406
  result = (double)((Gosu::Font const *)arg1)->textWidth((std::wstring const &)*arg2,arg3);
5530
- } catch(const std::runtime_error& e) {
5407
+ } catch (const std::exception& e) {
5531
5408
  SWIG_exception(SWIG_RuntimeError, e.what());
5532
5409
  }
5533
5410
  }
@@ -5608,7 +5485,7 @@ _wrap_Font_draw(int argc, VALUE *argv, VALUE self) {
5608
5485
  if (argc > 6) {
5609
5486
  {
5610
5487
  if (TYPE(argv[6]) == T_FIXNUM || TYPE(argv[6]) == T_BIGNUM)
5611
- arg8 = Gosu::Color(NUM2UINT(argv[6]));
5488
+ arg8 = Gosu::Color(NUM2ULONG(argv[6]));
5612
5489
  else
5613
5490
  {
5614
5491
  void* ptr;
@@ -5630,6 +5507,8 @@ _wrap_Font_draw(int argc, VALUE *argv, VALUE self) {
5630
5507
  SWIG_exception_fail(SWIG_ValueError, "alpha mode must be a symbol");
5631
5508
  else if (!strcmp(cstr, "default"))
5632
5509
  arg9 = Gosu::amDefault;
5510
+ else if (!strcmp(cstr, "add"))
5511
+ arg9 = Gosu::amAdditive;
5633
5512
  else if (!strcmp(cstr, "additive"))
5634
5513
  arg9 = Gosu::amAdditive;
5635
5514
  else if (!strcmp(cstr, "multiply"))
@@ -5641,7 +5520,7 @@ _wrap_Font_draw(int argc, VALUE *argv, VALUE self) {
5641
5520
  {
5642
5521
  try {
5643
5522
  ((Gosu::Font const *)arg1)->draw((std::wstring const &)*arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
5644
- } catch(const std::runtime_error& e) {
5523
+ } catch (const std::exception& e) {
5645
5524
  SWIG_exception(SWIG_RuntimeError, e.what());
5646
5525
  }
5647
5526
  }
@@ -5737,7 +5616,7 @@ _wrap_Font_draw_rel(int argc, VALUE *argv, VALUE self) {
5737
5616
  if (argc > 8) {
5738
5617
  {
5739
5618
  if (TYPE(argv[8]) == T_FIXNUM || TYPE(argv[8]) == T_BIGNUM)
5740
- arg10 = Gosu::Color(NUM2UINT(argv[8]));
5619
+ arg10 = Gosu::Color(NUM2ULONG(argv[8]));
5741
5620
  else
5742
5621
  {
5743
5622
  void* ptr;
@@ -5759,6 +5638,8 @@ _wrap_Font_draw_rel(int argc, VALUE *argv, VALUE self) {
5759
5638
  SWIG_exception_fail(SWIG_ValueError, "alpha mode must be a symbol");
5760
5639
  else if (!strcmp(cstr, "default"))
5761
5640
  arg11 = Gosu::amDefault;
5641
+ else if (!strcmp(cstr, "add"))
5642
+ arg11 = Gosu::amAdditive;
5762
5643
  else if (!strcmp(cstr, "additive"))
5763
5644
  arg11 = Gosu::amAdditive;
5764
5645
  else if (!strcmp(cstr, "multiply"))
@@ -5770,7 +5651,7 @@ _wrap_Font_draw_rel(int argc, VALUE *argv, VALUE self) {
5770
5651
  {
5771
5652
  try {
5772
5653
  ((Gosu::Font const *)arg1)->drawRel((std::wstring const &)*arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11);
5773
- } catch(const std::runtime_error& e) {
5654
+ } catch (const std::exception& e) {
5774
5655
  SWIG_exception(SWIG_RuntimeError, e.what());
5775
5656
  }
5776
5657
  }
@@ -5858,7 +5739,7 @@ _wrap_Font_draw_rot(int argc, VALUE *argv, VALUE self) {
5858
5739
  if (argc > 7) {
5859
5740
  {
5860
5741
  if (TYPE(argv[7]) == T_FIXNUM || TYPE(argv[7]) == T_BIGNUM)
5861
- arg9 = Gosu::Color(NUM2UINT(argv[7]));
5742
+ arg9 = Gosu::Color(NUM2ULONG(argv[7]));
5862
5743
  else
5863
5744
  {
5864
5745
  void* ptr;
@@ -5880,6 +5761,8 @@ _wrap_Font_draw_rot(int argc, VALUE *argv, VALUE self) {
5880
5761
  SWIG_exception_fail(SWIG_ValueError, "alpha mode must be a symbol");
5881
5762
  else if (!strcmp(cstr, "default"))
5882
5763
  arg10 = Gosu::amDefault;
5764
+ else if (!strcmp(cstr, "add"))
5765
+ arg10 = Gosu::amAdditive;
5883
5766
  else if (!strcmp(cstr, "additive"))
5884
5767
  arg10 = Gosu::amAdditive;
5885
5768
  else if (!strcmp(cstr, "multiply"))
@@ -5891,7 +5774,7 @@ _wrap_Font_draw_rot(int argc, VALUE *argv, VALUE self) {
5891
5774
  {
5892
5775
  try {
5893
5776
  ((Gosu::Font const *)arg1)->drawRot((std::wstring const &)*arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
5894
- } catch(const std::runtime_error& e) {
5777
+ } catch (const std::exception& e) {
5895
5778
  SWIG_exception(SWIG_RuntimeError, e.what());
5896
5779
  }
5897
5780
  }
@@ -5957,7 +5840,7 @@ _wrap_new_Font(int argc, VALUE *argv, VALUE self) {
5957
5840
  result = (Gosu::Font *)new_Gosu_Font(*arg1,(std::wstring const &)*arg2,arg3);
5958
5841
  DATA_PTR(self) = result;
5959
5842
  SWIG_RubyAddTracking(result, self);
5960
- } catch(const std::runtime_error& e) {
5843
+ } catch (const std::exception& e) {
5961
5844
  SWIG_exception(SWIG_RuntimeError, e.what());
5962
5845
  }
5963
5846
  }
@@ -5998,7 +5881,7 @@ _wrap_Font_set_image(int argc, VALUE *argv, VALUE self) {
5998
5881
  {
5999
5882
  try {
6000
5883
  Gosu_Font_set_image(arg1,arg2,arg3);
6001
- } catch(const std::runtime_error& e) {
5884
+ } catch (const std::exception& e) {
6002
5885
  SWIG_exception(SWIG_RuntimeError, e.what());
6003
5886
  }
6004
5887
  }
@@ -6311,7 +6194,7 @@ _wrap_new_GLTexInfo(int argc, VALUE *argv, VALUE self) {
6311
6194
  result = (Gosu::GLTexInfo *)new Gosu::GLTexInfo();
6312
6195
  DATA_PTR(self) = result;
6313
6196
  SWIG_RubyAddTracking(result, self);
6314
- } catch(const std::runtime_error& e) {
6197
+ } catch (const std::exception& e) {
6315
6198
  SWIG_exception(SWIG_RuntimeError, e.what());
6316
6199
  }
6317
6200
  }
@@ -6348,7 +6231,7 @@ _wrap_Image_width(int argc, VALUE *argv, VALUE self) {
6348
6231
  {
6349
6232
  try {
6350
6233
  result = (unsigned int)((Gosu::Image const *)arg1)->width();
6351
- } catch(const std::runtime_error& e) {
6234
+ } catch (const std::exception& e) {
6352
6235
  SWIG_exception(SWIG_RuntimeError, e.what());
6353
6236
  }
6354
6237
  }
@@ -6378,7 +6261,7 @@ _wrap_Image_height(int argc, VALUE *argv, VALUE self) {
6378
6261
  {
6379
6262
  try {
6380
6263
  result = (unsigned int)((Gosu::Image const *)arg1)->height();
6381
- } catch(const std::runtime_error& e) {
6264
+ } catch (const std::exception& e) {
6382
6265
  SWIG_exception(SWIG_RuntimeError, e.what());
6383
6266
  }
6384
6267
  }
@@ -6452,7 +6335,7 @@ _wrap_Image_draw(int argc, VALUE *argv, VALUE self) {
6452
6335
  if (argc > 5) {
6453
6336
  {
6454
6337
  if (TYPE(argv[5]) == T_FIXNUM || TYPE(argv[5]) == T_BIGNUM)
6455
- arg7 = Gosu::Color(NUM2UINT(argv[5]));
6338
+ arg7 = Gosu::Color(NUM2ULONG(argv[5]));
6456
6339
  else
6457
6340
  {
6458
6341
  void* ptr;
@@ -6474,6 +6357,8 @@ _wrap_Image_draw(int argc, VALUE *argv, VALUE self) {
6474
6357
  SWIG_exception_fail(SWIG_ValueError, "alpha mode must be a symbol");
6475
6358
  else if (!strcmp(cstr, "default"))
6476
6359
  arg8 = Gosu::amDefault;
6360
+ else if (!strcmp(cstr, "add"))
6361
+ arg8 = Gosu::amAdditive;
6477
6362
  else if (!strcmp(cstr, "additive"))
6478
6363
  arg8 = Gosu::amAdditive;
6479
6364
  else if (!strcmp(cstr, "multiply"))
@@ -6485,7 +6370,7 @@ _wrap_Image_draw(int argc, VALUE *argv, VALUE self) {
6485
6370
  {
6486
6371
  try {
6487
6372
  ((Gosu::Image const *)arg1)->draw(arg2,arg3,arg4,arg5,arg6,arg7,arg8);
6488
- } catch(const std::runtime_error& e) {
6373
+ } catch (const std::exception& e) {
6489
6374
  SWIG_exception(SWIG_RuntimeError, e.what());
6490
6375
  }
6491
6376
  }
@@ -6556,7 +6441,7 @@ _wrap_Image_draw_mod(int argc, VALUE *argv, VALUE self) {
6556
6441
  arg6 = static_cast< double >(val6);
6557
6442
  {
6558
6443
  if (TYPE(argv[5]) == T_FIXNUM || TYPE(argv[5]) == T_BIGNUM)
6559
- arg7 = Gosu::Color(NUM2UINT(argv[5]));
6444
+ arg7 = Gosu::Color(NUM2ULONG(argv[5]));
6560
6445
  else
6561
6446
  {
6562
6447
  void* ptr;
@@ -6571,7 +6456,7 @@ _wrap_Image_draw_mod(int argc, VALUE *argv, VALUE self) {
6571
6456
  }
6572
6457
  {
6573
6458
  if (TYPE(argv[6]) == T_FIXNUM || TYPE(argv[6]) == T_BIGNUM)
6574
- arg8 = Gosu::Color(NUM2UINT(argv[6]));
6459
+ arg8 = Gosu::Color(NUM2ULONG(argv[6]));
6575
6460
  else
6576
6461
  {
6577
6462
  void* ptr;
@@ -6586,7 +6471,7 @@ _wrap_Image_draw_mod(int argc, VALUE *argv, VALUE self) {
6586
6471
  }
6587
6472
  {
6588
6473
  if (TYPE(argv[7]) == T_FIXNUM || TYPE(argv[7]) == T_BIGNUM)
6589
- arg9 = Gosu::Color(NUM2UINT(argv[7]));
6474
+ arg9 = Gosu::Color(NUM2ULONG(argv[7]));
6590
6475
  else
6591
6476
  {
6592
6477
  void* ptr;
@@ -6601,7 +6486,7 @@ _wrap_Image_draw_mod(int argc, VALUE *argv, VALUE self) {
6601
6486
  }
6602
6487
  {
6603
6488
  if (TYPE(argv[8]) == T_FIXNUM || TYPE(argv[8]) == T_BIGNUM)
6604
- arg10 = Gosu::Color(NUM2UINT(argv[8]));
6489
+ arg10 = Gosu::Color(NUM2ULONG(argv[8]));
6605
6490
  else
6606
6491
  {
6607
6492
  void* ptr;
@@ -6622,6 +6507,8 @@ _wrap_Image_draw_mod(int argc, VALUE *argv, VALUE self) {
6622
6507
  SWIG_exception_fail(SWIG_ValueError, "alpha mode must be a symbol");
6623
6508
  else if (!strcmp(cstr, "default"))
6624
6509
  arg11 = Gosu::amDefault;
6510
+ else if (!strcmp(cstr, "add"))
6511
+ arg11 = Gosu::amAdditive;
6625
6512
  else if (!strcmp(cstr, "additive"))
6626
6513
  arg11 = Gosu::amAdditive;
6627
6514
  else if (!strcmp(cstr, "multiply"))
@@ -6633,7 +6520,7 @@ _wrap_Image_draw_mod(int argc, VALUE *argv, VALUE self) {
6633
6520
  {
6634
6521
  try {
6635
6522
  ((Gosu::Image const *)arg1)->drawMod(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11);
6636
- } catch(const std::runtime_error& e) {
6523
+ } catch (const std::exception& e) {
6637
6524
  SWIG_exception(SWIG_RuntimeError, e.what());
6638
6525
  }
6639
6526
  }
@@ -6734,7 +6621,7 @@ _wrap_Image_draw_rot(int argc, VALUE *argv, VALUE self) {
6734
6621
  if (argc > 8) {
6735
6622
  {
6736
6623
  if (TYPE(argv[8]) == T_FIXNUM || TYPE(argv[8]) == T_BIGNUM)
6737
- arg10 = Gosu::Color(NUM2UINT(argv[8]));
6624
+ arg10 = Gosu::Color(NUM2ULONG(argv[8]));
6738
6625
  else
6739
6626
  {
6740
6627
  void* ptr;
@@ -6756,6 +6643,8 @@ _wrap_Image_draw_rot(int argc, VALUE *argv, VALUE self) {
6756
6643
  SWIG_exception_fail(SWIG_ValueError, "alpha mode must be a symbol");
6757
6644
  else if (!strcmp(cstr, "default"))
6758
6645
  arg11 = Gosu::amDefault;
6646
+ else if (!strcmp(cstr, "add"))
6647
+ arg11 = Gosu::amAdditive;
6759
6648
  else if (!strcmp(cstr, "additive"))
6760
6649
  arg11 = Gosu::amAdditive;
6761
6650
  else if (!strcmp(cstr, "multiply"))
@@ -6767,7 +6656,7 @@ _wrap_Image_draw_rot(int argc, VALUE *argv, VALUE self) {
6767
6656
  {
6768
6657
  try {
6769
6658
  ((Gosu::Image const *)arg1)->drawRot(arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11);
6770
- } catch(const std::runtime_error& e) {
6659
+ } catch (const std::exception& e) {
6771
6660
  SWIG_exception(SWIG_RuntimeError, e.what());
6772
6661
  }
6773
6662
  }
@@ -6796,7 +6685,7 @@ _wrap_Image_get_data(int argc, VALUE *argv, VALUE self) {
6796
6685
  {
6797
6686
  try {
6798
6687
  result = (Gosu::ImageData *) &((Gosu::Image const *)arg1)->getData();
6799
- } catch(const std::runtime_error& e) {
6688
+ } catch (const std::exception& e) {
6800
6689
  SWIG_exception(SWIG_RuntimeError, e.what());
6801
6690
  }
6802
6691
  }
@@ -6843,7 +6732,7 @@ _wrap_new_Image__SWIG_0(int argc, VALUE *argv, VALUE self) {
6843
6732
  result = (Gosu::Image *)new_Gosu_Image__SWIG_0(*arg1,arg2,arg3);
6844
6733
  DATA_PTR(self) = result;
6845
6734
  SWIG_RubyAddTracking(result, self);
6846
- } catch(const std::runtime_error& e) {
6735
+ } catch (const std::exception& e) {
6847
6736
  SWIG_exception(SWIG_RuntimeError, e.what());
6848
6737
  }
6849
6738
  }
@@ -6936,7 +6825,7 @@ _wrap_new_Image__SWIG_1(int argc, VALUE *argv, VALUE self) {
6936
6825
  result = (Gosu::Image *)new_Gosu_Image__SWIG_1(*arg1,arg2,arg3,arg4,arg5,arg6,arg7);
6937
6826
  DATA_PTR(self) = result;
6938
6827
  SWIG_RubyAddTracking(result, self);
6939
- } catch(const std::runtime_error& e) {
6828
+ } catch (const std::exception& e) {
6940
6829
  SWIG_exception(SWIG_RuntimeError, e.what());
6941
6830
  }
6942
6831
  }
@@ -7087,7 +6976,7 @@ _wrap_Image_draw_as_quad(int argc, VALUE *argv, VALUE self) {
7087
6976
  arg3 = static_cast< double >(val3);
7088
6977
  {
7089
6978
  if (TYPE(argv[2]) == T_FIXNUM || TYPE(argv[2]) == T_BIGNUM)
7090
- arg4 = Gosu::Color(NUM2UINT(argv[2]));
6979
+ arg4 = Gosu::Color(NUM2ULONG(argv[2]));
7091
6980
  else
7092
6981
  {
7093
6982
  void* ptr;
@@ -7112,7 +7001,7 @@ _wrap_Image_draw_as_quad(int argc, VALUE *argv, VALUE self) {
7112
7001
  arg6 = static_cast< double >(val6);
7113
7002
  {
7114
7003
  if (TYPE(argv[5]) == T_FIXNUM || TYPE(argv[5]) == T_BIGNUM)
7115
- arg7 = Gosu::Color(NUM2UINT(argv[5]));
7004
+ arg7 = Gosu::Color(NUM2ULONG(argv[5]));
7116
7005
  else
7117
7006
  {
7118
7007
  void* ptr;
@@ -7137,7 +7026,7 @@ _wrap_Image_draw_as_quad(int argc, VALUE *argv, VALUE self) {
7137
7026
  arg9 = static_cast< double >(val9);
7138
7027
  {
7139
7028
  if (TYPE(argv[8]) == T_FIXNUM || TYPE(argv[8]) == T_BIGNUM)
7140
- arg10 = Gosu::Color(NUM2UINT(argv[8]));
7029
+ arg10 = Gosu::Color(NUM2ULONG(argv[8]));
7141
7030
  else
7142
7031
  {
7143
7032
  void* ptr;
@@ -7162,7 +7051,7 @@ _wrap_Image_draw_as_quad(int argc, VALUE *argv, VALUE self) {
7162
7051
  arg12 = static_cast< double >(val12);
7163
7052
  {
7164
7053
  if (TYPE(argv[11]) == T_FIXNUM || TYPE(argv[11]) == T_BIGNUM)
7165
- arg13 = Gosu::Color(NUM2UINT(argv[11]));
7054
+ arg13 = Gosu::Color(NUM2ULONG(argv[11]));
7166
7055
  else
7167
7056
  {
7168
7057
  void* ptr;
@@ -7188,6 +7077,8 @@ _wrap_Image_draw_as_quad(int argc, VALUE *argv, VALUE self) {
7188
7077
  SWIG_exception_fail(SWIG_ValueError, "alpha mode must be a symbol");
7189
7078
  else if (!strcmp(cstr, "default"))
7190
7079
  arg15 = Gosu::amDefault;
7080
+ else if (!strcmp(cstr, "add"))
7081
+ arg15 = Gosu::amAdditive;
7191
7082
  else if (!strcmp(cstr, "additive"))
7192
7083
  arg15 = Gosu::amAdditive;
7193
7084
  else if (!strcmp(cstr, "multiply"))
@@ -7199,7 +7090,7 @@ _wrap_Image_draw_as_quad(int argc, VALUE *argv, VALUE self) {
7199
7090
  {
7200
7091
  try {
7201
7092
  Gosu_Image_drawAsQuad(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15);
7202
- } catch(const std::runtime_error& e) {
7093
+ } catch (const std::exception& e) {
7203
7094
  SWIG_exception(SWIG_RuntimeError, e.what());
7204
7095
  }
7205
7096
  }
@@ -7228,7 +7119,7 @@ _wrap_Image_gl_tex_info(int argc, VALUE *argv, VALUE self) {
7228
7119
  {
7229
7120
  try {
7230
7121
  result = (Gosu::GLTexInfo *)Gosu_Image_glTexInfo((Gosu::Image const *)arg1);
7231
- } catch(const std::runtime_error& e) {
7122
+ } catch (const std::exception& e) {
7232
7123
  SWIG_exception(SWIG_RuntimeError, e.what());
7233
7124
  }
7234
7125
  }
@@ -7283,7 +7174,7 @@ _wrap_Image_from_text4(int argc, VALUE *argv, VALUE self) {
7283
7174
  {
7284
7175
  try {
7285
7176
  result = (Gosu::Image *)Gosu_Image_fromText4(*arg1,(std::wstring const &)*arg2,(std::wstring const &)*arg3,arg4);
7286
- } catch(const std::runtime_error& e) {
7177
+ } catch (const std::exception& e) {
7287
7178
  SWIG_exception(SWIG_RuntimeError, e.what());
7288
7179
  }
7289
7180
  }
@@ -7371,7 +7262,7 @@ _wrap_Image_from_text7(int argc, VALUE *argv, VALUE self) {
7371
7262
  {
7372
7263
  try {
7373
7264
  result = (Gosu::Image *)Gosu_Image_fromText7(*arg1,(std::wstring const &)*arg2,(std::wstring const &)*arg3,arg4,arg5,arg6,arg7);
7374
- } catch(const std::runtime_error& e) {
7265
+ } catch (const std::exception& e) {
7375
7266
  SWIG_exception(SWIG_RuntimeError, e.what());
7376
7267
  }
7377
7268
  }
@@ -7430,7 +7321,7 @@ _wrap_Image_load_tiles(int argc, VALUE *argv, VALUE self) {
7430
7321
  {
7431
7322
  try {
7432
7323
  result = Gosu_Image_loadTiles(*arg1,arg2,arg3,arg4,arg5);
7433
- } catch(const std::runtime_error& e) {
7324
+ } catch (const std::exception& e) {
7434
7325
  SWIG_exception(SWIG_RuntimeError, e.what());
7435
7326
  }
7436
7327
  }
@@ -7466,7 +7357,7 @@ _wrap_Image_to_blob(int argc, VALUE *argv, VALUE self) {
7466
7357
  {
7467
7358
  try {
7468
7359
  result = Gosu_Image_toBlob((Gosu::Image const *)arg1);
7469
- } catch(const std::runtime_error& e) {
7360
+ } catch (const std::exception& e) {
7470
7361
  SWIG_exception(SWIG_RuntimeError, e.what());
7471
7362
  }
7472
7363
  }
@@ -7496,7 +7387,7 @@ _wrap_Image_columns(int argc, VALUE *argv, VALUE self) {
7496
7387
  {
7497
7388
  try {
7498
7389
  result = (unsigned int)Gosu_Image_columns((Gosu::Image const *)arg1);
7499
- } catch(const std::runtime_error& e) {
7390
+ } catch (const std::exception& e) {
7500
7391
  SWIG_exception(SWIG_RuntimeError, e.what());
7501
7392
  }
7502
7393
  }
@@ -7526,7 +7417,7 @@ _wrap_Image_rows(int argc, VALUE *argv, VALUE self) {
7526
7417
  {
7527
7418
  try {
7528
7419
  result = (unsigned int)Gosu_Image_rows((Gosu::Image const *)arg1);
7529
- } catch(const std::runtime_error& e) {
7420
+ } catch (const std::exception& e) {
7530
7421
  SWIG_exception(SWIG_RuntimeError, e.what());
7531
7422
  }
7532
7423
  }
@@ -7561,7 +7452,7 @@ _wrap_Image_save(int argc, VALUE *argv, VALUE self) {
7561
7452
  {
7562
7453
  try {
7563
7454
  Gosu_Image_save((Gosu::Image const *)arg1,(std::wstring const &)*arg2);
7564
- } catch(const std::runtime_error& e) {
7455
+ } catch (const std::exception& e) {
7565
7456
  SWIG_exception(SWIG_RuntimeError, e.what());
7566
7457
  }
7567
7458
  }
@@ -7615,7 +7506,7 @@ _wrap_Image_insert(int argc, VALUE *argv, VALUE self) {
7615
7506
  {
7616
7507
  try {
7617
7508
  Gosu_Image_insert(arg1,arg2,arg3,arg4);
7618
- } catch(const std::runtime_error& e) {
7509
+ } catch (const std::exception& e) {
7619
7510
  SWIG_exception(SWIG_RuntimeError, e.what());
7620
7511
  }
7621
7512
  }
@@ -7642,7 +7533,7 @@ _wrap_fps(int argc, VALUE *argv, VALUE self) {
7642
7533
  {
7643
7534
  try {
7644
7535
  result = (int)Gosu::fps();
7645
- } catch(const std::runtime_error& e) {
7536
+ } catch (const std::exception& e) {
7646
7537
  SWIG_exception(SWIG_RuntimeError, e.what());
7647
7538
  }
7648
7539
  }
@@ -7701,7 +7592,7 @@ _wrap_new_SampleInstance(int argc, VALUE *argv, VALUE self) {
7701
7592
  result = (Gosu::SampleInstance *)new Gosu::SampleInstance(arg1,arg2);
7702
7593
  DATA_PTR(self) = result;
7703
7594
  SWIG_RubyAddTracking(result, self);
7704
- } catch(const std::runtime_error& e) {
7595
+ } catch (const std::exception& e) {
7705
7596
  SWIG_exception(SWIG_RuntimeError, e.what());
7706
7597
  }
7707
7598
  }
@@ -7730,7 +7621,7 @@ _wrap_SampleInstance_playingq___(int argc, VALUE *argv, VALUE self) {
7730
7621
  {
7731
7622
  try {
7732
7623
  result = (bool)((Gosu::SampleInstance const *)arg1)->playing();
7733
- } catch(const std::runtime_error& e) {
7624
+ } catch (const std::exception& e) {
7734
7625
  SWIG_exception(SWIG_RuntimeError, e.what());
7735
7626
  }
7736
7627
  }
@@ -7760,7 +7651,7 @@ _wrap_SampleInstance_pausedq___(int argc, VALUE *argv, VALUE self) {
7760
7651
  {
7761
7652
  try {
7762
7653
  result = (bool)((Gosu::SampleInstance const *)arg1)->paused();
7763
- } catch(const std::runtime_error& e) {
7654
+ } catch (const std::exception& e) {
7764
7655
  SWIG_exception(SWIG_RuntimeError, e.what());
7765
7656
  }
7766
7657
  }
@@ -7788,7 +7679,7 @@ _wrap_SampleInstance_pause(int argc, VALUE *argv, VALUE self) {
7788
7679
  {
7789
7680
  try {
7790
7681
  (arg1)->pause();
7791
- } catch(const std::runtime_error& e) {
7682
+ } catch (const std::exception& e) {
7792
7683
  SWIG_exception(SWIG_RuntimeError, e.what());
7793
7684
  }
7794
7685
  }
@@ -7815,7 +7706,7 @@ _wrap_SampleInstance_resume(int argc, VALUE *argv, VALUE self) {
7815
7706
  {
7816
7707
  try {
7817
7708
  (arg1)->resume();
7818
- } catch(const std::runtime_error& e) {
7709
+ } catch (const std::exception& e) {
7819
7710
  SWIG_exception(SWIG_RuntimeError, e.what());
7820
7711
  }
7821
7712
  }
@@ -7842,7 +7733,7 @@ _wrap_SampleInstance_stop(int argc, VALUE *argv, VALUE self) {
7842
7733
  {
7843
7734
  try {
7844
7735
  (arg1)->stop();
7845
- } catch(const std::runtime_error& e) {
7736
+ } catch (const std::exception& e) {
7846
7737
  SWIG_exception(SWIG_RuntimeError, e.what());
7847
7738
  }
7848
7739
  }
@@ -7877,7 +7768,7 @@ _wrap_SampleInstance_volumee___(int argc, VALUE *argv, VALUE self) {
7877
7768
  {
7878
7769
  try {
7879
7770
  (arg1)->changeVolume(arg2);
7880
- } catch(const std::runtime_error& e) {
7771
+ } catch (const std::exception& e) {
7881
7772
  SWIG_exception(SWIG_RuntimeError, e.what());
7882
7773
  }
7883
7774
  }
@@ -7912,7 +7803,7 @@ _wrap_SampleInstance_pane___(int argc, VALUE *argv, VALUE self) {
7912
7803
  {
7913
7804
  try {
7914
7805
  (arg1)->changePan(arg2);
7915
- } catch(const std::runtime_error& e) {
7806
+ } catch (const std::exception& e) {
7916
7807
  SWIG_exception(SWIG_RuntimeError, e.what());
7917
7808
  }
7918
7809
  }
@@ -7947,7 +7838,7 @@ _wrap_SampleInstance_speede___(int argc, VALUE *argv, VALUE self) {
7947
7838
  {
7948
7839
  try {
7949
7840
  (arg1)->changeSpeed(arg2);
7950
- } catch(const std::runtime_error& e) {
7841
+ } catch (const std::exception& e) {
7951
7842
  SWIG_exception(SWIG_RuntimeError, e.what());
7952
7843
  }
7953
7844
  }
@@ -8002,7 +7893,7 @@ _wrap_new_Sample(int argc, VALUE *argv, VALUE self) {
8002
7893
  result = (Gosu::Sample *)new Gosu::Sample((std::wstring const &)*arg1);
8003
7894
  DATA_PTR(self) = result;
8004
7895
  SWIG_RubyAddTracking(result, self);
8005
- } catch(const std::runtime_error& e) {
7896
+ } catch (const std::exception& e) {
8006
7897
  SWIG_exception(SWIG_RuntimeError, e.what());
8007
7898
  }
8008
7899
  }
@@ -8061,7 +7952,7 @@ _wrap_Sample_play(int argc, VALUE *argv, VALUE self) {
8061
7952
  {
8062
7953
  try {
8063
7954
  result = ((Gosu::Sample const *)arg1)->play(arg2,arg3,arg4);
8064
- } catch(const std::runtime_error& e) {
7955
+ } catch (const std::exception& e) {
8065
7956
  SWIG_exception(SWIG_RuntimeError, e.what());
8066
7957
  }
8067
7958
  }
@@ -8129,7 +8020,7 @@ _wrap_Sample_play_pan(int argc, VALUE *argv, VALUE self) {
8129
8020
  {
8130
8021
  try {
8131
8022
  result = ((Gosu::Sample const *)arg1)->playPan(arg2,arg3,arg4,arg5);
8132
- } catch(const std::runtime_error& e) {
8023
+ } catch (const std::exception& e) {
8133
8024
  SWIG_exception(SWIG_RuntimeError, e.what());
8134
8025
  }
8135
8026
  }
@@ -8185,7 +8076,7 @@ _wrap_new_Song(int argc, VALUE *argv, VALUE self) {
8185
8076
  result = (Gosu::Song *)new Gosu::Song((std::wstring const &)*arg1);
8186
8077
  DATA_PTR(self) = result;
8187
8078
  SWIG_RubyAddTracking(result, self);
8188
- } catch(const std::runtime_error& e) {
8079
+ } catch (const std::exception& e) {
8189
8080
  SWIG_exception(SWIG_RuntimeError, e.what());
8190
8081
  }
8191
8082
  }
@@ -8212,7 +8103,7 @@ _wrap_Song_current_song(int argc, VALUE *argv, VALUE self) {
8212
8103
  {
8213
8104
  try {
8214
8105
  result = (Gosu::Song *)Gosu::Song::currentSong();
8215
- } catch(const std::runtime_error& e) {
8106
+ } catch (const std::exception& e) {
8216
8107
  SWIG_exception(SWIG_RuntimeError, e.what());
8217
8108
  }
8218
8109
  }
@@ -8250,7 +8141,7 @@ _wrap_Song_play(int argc, VALUE *argv, VALUE self) {
8250
8141
  {
8251
8142
  try {
8252
8143
  (arg1)->play(arg2);
8253
- } catch(const std::runtime_error& e) {
8144
+ } catch (const std::exception& e) {
8254
8145
  SWIG_exception(SWIG_RuntimeError, e.what());
8255
8146
  }
8256
8147
  }
@@ -8277,7 +8168,7 @@ _wrap_Song_pause(int argc, VALUE *argv, VALUE self) {
8277
8168
  {
8278
8169
  try {
8279
8170
  (arg1)->pause();
8280
- } catch(const std::runtime_error& e) {
8171
+ } catch (const std::exception& e) {
8281
8172
  SWIG_exception(SWIG_RuntimeError, e.what());
8282
8173
  }
8283
8174
  }
@@ -8306,7 +8197,7 @@ _wrap_Song_pausedq___(int argc, VALUE *argv, VALUE self) {
8306
8197
  {
8307
8198
  try {
8308
8199
  result = (bool)((Gosu::Song const *)arg1)->paused();
8309
- } catch(const std::runtime_error& e) {
8200
+ } catch (const std::exception& e) {
8310
8201
  SWIG_exception(SWIG_RuntimeError, e.what());
8311
8202
  }
8312
8203
  }
@@ -8334,7 +8225,7 @@ _wrap_Song_stop(int argc, VALUE *argv, VALUE self) {
8334
8225
  {
8335
8226
  try {
8336
8227
  (arg1)->stop();
8337
- } catch(const std::runtime_error& e) {
8228
+ } catch (const std::exception& e) {
8338
8229
  SWIG_exception(SWIG_RuntimeError, e.what());
8339
8230
  }
8340
8231
  }
@@ -8363,7 +8254,7 @@ _wrap_Song_playingq___(int argc, VALUE *argv, VALUE self) {
8363
8254
  {
8364
8255
  try {
8365
8256
  result = (bool)((Gosu::Song const *)arg1)->playing();
8366
- } catch(const std::runtime_error& e) {
8257
+ } catch (const std::exception& e) {
8367
8258
  SWIG_exception(SWIG_RuntimeError, e.what());
8368
8259
  }
8369
8260
  }
@@ -8393,7 +8284,7 @@ _wrap_Song_volume(int argc, VALUE *argv, VALUE self) {
8393
8284
  {
8394
8285
  try {
8395
8286
  result = (double)((Gosu::Song const *)arg1)->volume();
8396
- } catch(const std::runtime_error& e) {
8287
+ } catch (const std::exception& e) {
8397
8288
  SWIG_exception(SWIG_RuntimeError, e.what());
8398
8289
  }
8399
8290
  }
@@ -8429,7 +8320,7 @@ _wrap_Song_volumee___(int argc, VALUE *argv, VALUE self) {
8429
8320
  {
8430
8321
  try {
8431
8322
  (arg1)->changeVolume(arg2);
8432
- } catch(const std::runtime_error& e) {
8323
+ } catch (const std::exception& e) {
8433
8324
  SWIG_exception(SWIG_RuntimeError, e.what());
8434
8325
  }
8435
8326
  }
@@ -8447,7 +8338,7 @@ _wrap_Song_update(int argc, VALUE *argv, VALUE self) {
8447
8338
  {
8448
8339
  try {
8449
8340
  Gosu::Song::update();
8450
- } catch(const std::runtime_error& e) {
8341
+ } catch (const std::exception& e) {
8451
8342
  SWIG_exception(SWIG_RuntimeError, e.what());
8452
8343
  }
8453
8344
  }
@@ -8497,7 +8388,7 @@ _wrap_new_TextInput(int argc, VALUE *argv, VALUE self) {
8497
8388
 
8498
8389
  DATA_PTR(self) = result;
8499
8390
  SWIG_RubyAddTracking(result, self);
8500
- } catch(const std::runtime_error& e) {
8391
+ } catch (const std::exception& e) {
8501
8392
  SWIG_exception(SWIG_RuntimeError, e.what());
8502
8393
  }
8503
8394
  }
@@ -8532,7 +8423,7 @@ _wrap_TextInput_text(int argc, VALUE *argv, VALUE self) {
8532
8423
  {
8533
8424
  try {
8534
8425
  result = ((Gosu::TextInput const *)arg1)->text();
8535
- } catch(const std::runtime_error& e) {
8426
+ } catch (const std::exception& e) {
8536
8427
  SWIG_exception(SWIG_RuntimeError, e.what());
8537
8428
  }
8538
8429
  }
@@ -8570,7 +8461,7 @@ _wrap_TextInput_texte___(int argc, VALUE *argv, VALUE self) {
8570
8461
  {
8571
8462
  try {
8572
8463
  (arg1)->setText((std::wstring const &)*arg2);
8573
- } catch(const std::runtime_error& e) {
8464
+ } catch (const std::exception& e) {
8574
8465
  SWIG_exception(SWIG_RuntimeError, e.what());
8575
8466
  }
8576
8467
  }
@@ -8605,7 +8496,7 @@ _wrap_TextInput_caret_pose___(int argc, VALUE *argv, VALUE self) {
8605
8496
  {
8606
8497
  try {
8607
8498
  (arg1)->setCaretPos(arg2);
8608
- } catch(const std::runtime_error& e) {
8499
+ } catch (const std::exception& e) {
8609
8500
  SWIG_exception(SWIG_RuntimeError, e.what());
8610
8501
  }
8611
8502
  }
@@ -8640,7 +8531,7 @@ _wrap_TextInput_selection_starte___(int argc, VALUE *argv, VALUE self) {
8640
8531
  {
8641
8532
  try {
8642
8533
  (arg1)->setSelectionStart(arg2);
8643
- } catch(const std::runtime_error& e) {
8534
+ } catch (const std::exception& e) {
8644
8535
  SWIG_exception(SWIG_RuntimeError, e.what());
8645
8536
  }
8646
8537
  }
@@ -8685,7 +8576,7 @@ _wrap_TextInput_filter(int argc, VALUE *argv, VALUE self) {
8685
8576
  } else {
8686
8577
  result = ((Gosu::TextInput const *)arg1)->filter((std::wstring const &)*arg2);
8687
8578
  }
8688
- } catch(const std::runtime_error& e) {
8579
+ } catch (const std::exception& e) {
8689
8580
  SWIG_exception(SWIG_RuntimeError, e.what());
8690
8581
  }
8691
8582
  }
@@ -8722,7 +8613,7 @@ _wrap_TextInput_caret_pos(int argc, VALUE *argv, VALUE self) {
8722
8613
  {
8723
8614
  try {
8724
8615
  result = (unsigned int)Gosu_TextInput_caret_pos((Gosu::TextInput const *)arg1);
8725
- } catch(const std::runtime_error& e) {
8616
+ } catch (const std::exception& e) {
8726
8617
  SWIG_exception(SWIG_RuntimeError, e.what());
8727
8618
  }
8728
8619
  }
@@ -8752,7 +8643,7 @@ _wrap_TextInput_selection_start(int argc, VALUE *argv, VALUE self) {
8752
8643
  {
8753
8644
  try {
8754
8645
  result = (unsigned int)Gosu_TextInput_selection_start((Gosu::TextInput const *)arg1);
8755
- } catch(const std::runtime_error& e) {
8646
+ } catch (const std::exception& e) {
8756
8647
  SWIG_exception(SWIG_RuntimeError, e.what());
8757
8648
  }
8758
8649
  }
@@ -8862,7 +8753,7 @@ _wrap_new_Window(int argc, VALUE *argv, VALUE self) {
8862
8753
 
8863
8754
  DATA_PTR(self) = result;
8864
8755
  SWIG_RubyAddTracking(result, self);
8865
- } catch(const std::runtime_error& e) {
8756
+ } catch (const std::exception& e) {
8866
8757
  SWIG_exception(SWIG_RuntimeError, e.what());
8867
8758
  }
8868
8759
  }
@@ -8897,7 +8788,7 @@ _wrap_Window_caption(int argc, VALUE *argv, VALUE self) {
8897
8788
  {
8898
8789
  try {
8899
8790
  result = ((Gosu::Window const *)arg1)->caption();
8900
- } catch(const std::runtime_error& e) {
8791
+ } catch (const std::exception& e) {
8901
8792
  SWIG_exception(SWIG_RuntimeError, e.what());
8902
8793
  }
8903
8794
  }
@@ -8935,7 +8826,7 @@ _wrap_Window_captione___(int argc, VALUE *argv, VALUE self) {
8935
8826
  {
8936
8827
  try {
8937
8828
  (arg1)->setCaption((std::wstring const &)*arg2);
8938
- } catch(const std::runtime_error& e) {
8829
+ } catch (const std::exception& e) {
8939
8830
  SWIG_exception(SWIG_RuntimeError, e.what());
8940
8831
  }
8941
8832
  }
@@ -8964,7 +8855,7 @@ _wrap_Window_update_interval(int argc, VALUE *argv, VALUE self) {
8964
8855
  {
8965
8856
  try {
8966
8857
  result = (double)((Gosu::Window const *)arg1)->updateInterval();
8967
- } catch(const std::runtime_error& e) {
8858
+ } catch (const std::exception& e) {
8968
8859
  SWIG_exception(SWIG_RuntimeError, e.what());
8969
8860
  }
8970
8861
  }
@@ -8992,7 +8883,7 @@ _wrap_Window_show(int argc, VALUE *argv, VALUE self) {
8992
8883
  {
8993
8884
  try {
8994
8885
  (arg1)->show();
8995
- } catch(const std::runtime_error& e) {
8886
+ } catch (const std::exception& e) {
8996
8887
  SWIG_exception(SWIG_RuntimeError, e.what());
8997
8888
  }
8998
8889
  }
@@ -9019,7 +8910,7 @@ _wrap_Window_close(int argc, VALUE *argv, VALUE self) {
9019
8910
  {
9020
8911
  try {
9021
8912
  (arg1)->close();
9022
- } catch(const std::runtime_error& e) {
8913
+ } catch (const std::exception& e) {
9023
8914
  SWIG_exception(SWIG_RuntimeError, e.what());
9024
8915
  }
9025
8916
  }
@@ -9055,7 +8946,7 @@ _wrap_Window_update(int argc, VALUE *argv, VALUE self) {
9055
8946
  } else {
9056
8947
  (arg1)->update();
9057
8948
  }
9058
- } catch(const std::runtime_error& e) {
8949
+ } catch (const std::exception& e) {
9059
8950
  SWIG_exception(SWIG_RuntimeError, e.what());
9060
8951
  }
9061
8952
  }
@@ -9095,7 +8986,7 @@ _wrap_Window_draw(int argc, VALUE *argv, VALUE self) {
9095
8986
  } else {
9096
8987
  (arg1)->draw();
9097
8988
  }
9098
- } catch(const std::runtime_error& e) {
8989
+ } catch (const std::exception& e) {
9099
8990
  SWIG_exception(SWIG_RuntimeError, e.what());
9100
8991
  }
9101
8992
  }
@@ -9137,7 +9028,7 @@ _wrap_Window_needs_redrawq___(int argc, VALUE *argv, VALUE self) {
9137
9028
  } else {
9138
9029
  result = (bool)((Gosu::Window const *)arg1)->needsRedraw();
9139
9030
  }
9140
- } catch(const std::runtime_error& e) {
9031
+ } catch (const std::exception& e) {
9141
9032
  SWIG_exception(SWIG_RuntimeError, e.what());
9142
9033
  }
9143
9034
  }
@@ -9180,7 +9071,7 @@ _wrap_Window_needs_cursorq___(int argc, VALUE *argv, VALUE self) {
9180
9071
  } else {
9181
9072
  result = (bool)((Gosu::Window const *)arg1)->needsCursor();
9182
9073
  }
9183
- } catch(const std::runtime_error& e) {
9074
+ } catch (const std::exception& e) {
9184
9075
  SWIG_exception(SWIG_RuntimeError, e.what());
9185
9076
  }
9186
9077
  }
@@ -9221,7 +9112,7 @@ _wrap_Window_lose_focus(int argc, VALUE *argv, VALUE self) {
9221
9112
  } else {
9222
9113
  (arg1)->loseFocus();
9223
9114
  }
9224
- } catch(const std::runtime_error& e) {
9115
+ } catch (const std::exception& e) {
9225
9116
  SWIG_exception(SWIG_RuntimeError, e.what());
9226
9117
  }
9227
9118
  }
@@ -9261,7 +9152,7 @@ _wrap_Window_release_memory(int argc, VALUE *argv, VALUE self) {
9261
9152
  } else {
9262
9153
  (arg1)->releaseMemory();
9263
9154
  }
9264
- } catch(const std::runtime_error& e) {
9155
+ } catch (const std::exception& e) {
9265
9156
  SWIG_exception(SWIG_RuntimeError, e.what());
9266
9157
  }
9267
9158
  }
@@ -9308,7 +9199,7 @@ _wrap_Window_button_down(int argc, VALUE *argv, VALUE self) {
9308
9199
  } else {
9309
9200
  (arg1)->buttonDown(arg2);
9310
9201
  }
9311
- } catch(const std::runtime_error& e) {
9202
+ } catch (const std::exception& e) {
9312
9203
  SWIG_exception(SWIG_RuntimeError, e.what());
9313
9204
  }
9314
9205
  }
@@ -9355,7 +9246,7 @@ _wrap_Window_button_up(int argc, VALUE *argv, VALUE self) {
9355
9246
  } else {
9356
9247
  (arg1)->buttonUp(arg2);
9357
9248
  }
9358
- } catch(const std::runtime_error& e) {
9249
+ } catch (const std::exception& e) {
9359
9250
  SWIG_exception(SWIG_RuntimeError, e.what());
9360
9251
  }
9361
9252
  }
@@ -9413,7 +9304,7 @@ _wrap_Window_draw_line(int argc, VALUE *argv, VALUE self) {
9413
9304
  arg3 = static_cast< double >(val3);
9414
9305
  {
9415
9306
  if (TYPE(argv[2]) == T_FIXNUM || TYPE(argv[2]) == T_BIGNUM)
9416
- arg4 = Gosu::Color(NUM2UINT(argv[2]));
9307
+ arg4 = Gosu::Color(NUM2ULONG(argv[2]));
9417
9308
  else
9418
9309
  {
9419
9310
  void* ptr;
@@ -9438,7 +9329,7 @@ _wrap_Window_draw_line(int argc, VALUE *argv, VALUE self) {
9438
9329
  arg6 = static_cast< double >(val6);
9439
9330
  {
9440
9331
  if (TYPE(argv[5]) == T_FIXNUM || TYPE(argv[5]) == T_BIGNUM)
9441
- arg7 = Gosu::Color(NUM2UINT(argv[5]));
9332
+ arg7 = Gosu::Color(NUM2ULONG(argv[5]));
9442
9333
  else
9443
9334
  {
9444
9335
  void* ptr;
@@ -9466,6 +9357,8 @@ _wrap_Window_draw_line(int argc, VALUE *argv, VALUE self) {
9466
9357
  SWIG_exception_fail(SWIG_ValueError, "alpha mode must be a symbol");
9467
9358
  else if (!strcmp(cstr, "default"))
9468
9359
  arg9 = Gosu::amDefault;
9360
+ else if (!strcmp(cstr, "add"))
9361
+ arg9 = Gosu::amAdditive;
9469
9362
  else if (!strcmp(cstr, "additive"))
9470
9363
  arg9 = Gosu::amAdditive;
9471
9364
  else if (!strcmp(cstr, "multiply"))
@@ -9477,7 +9370,7 @@ _wrap_Window_draw_line(int argc, VALUE *argv, VALUE self) {
9477
9370
  {
9478
9371
  try {
9479
9372
  Gosu_Window_drawLine(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
9480
- } catch(const std::runtime_error& e) {
9373
+ } catch (const std::exception& e) {
9481
9374
  SWIG_exception(SWIG_RuntimeError, e.what());
9482
9375
  }
9483
9376
  }
@@ -9538,7 +9431,7 @@ _wrap_Window_draw_triangle(int argc, VALUE *argv, VALUE self) {
9538
9431
  arg3 = static_cast< double >(val3);
9539
9432
  {
9540
9433
  if (TYPE(argv[2]) == T_FIXNUM || TYPE(argv[2]) == T_BIGNUM)
9541
- arg4 = Gosu::Color(NUM2UINT(argv[2]));
9434
+ arg4 = Gosu::Color(NUM2ULONG(argv[2]));
9542
9435
  else
9543
9436
  {
9544
9437
  void* ptr;
@@ -9563,7 +9456,7 @@ _wrap_Window_draw_triangle(int argc, VALUE *argv, VALUE self) {
9563
9456
  arg6 = static_cast< double >(val6);
9564
9457
  {
9565
9458
  if (TYPE(argv[5]) == T_FIXNUM || TYPE(argv[5]) == T_BIGNUM)
9566
- arg7 = Gosu::Color(NUM2UINT(argv[5]));
9459
+ arg7 = Gosu::Color(NUM2ULONG(argv[5]));
9567
9460
  else
9568
9461
  {
9569
9462
  void* ptr;
@@ -9588,7 +9481,7 @@ _wrap_Window_draw_triangle(int argc, VALUE *argv, VALUE self) {
9588
9481
  arg9 = static_cast< double >(val9);
9589
9482
  {
9590
9483
  if (TYPE(argv[8]) == T_FIXNUM || TYPE(argv[8]) == T_BIGNUM)
9591
- arg10 = Gosu::Color(NUM2UINT(argv[8]));
9484
+ arg10 = Gosu::Color(NUM2ULONG(argv[8]));
9592
9485
  else
9593
9486
  {
9594
9487
  void* ptr;
@@ -9616,6 +9509,8 @@ _wrap_Window_draw_triangle(int argc, VALUE *argv, VALUE self) {
9616
9509
  SWIG_exception_fail(SWIG_ValueError, "alpha mode must be a symbol");
9617
9510
  else if (!strcmp(cstr, "default"))
9618
9511
  arg12 = Gosu::amDefault;
9512
+ else if (!strcmp(cstr, "add"))
9513
+ arg12 = Gosu::amAdditive;
9619
9514
  else if (!strcmp(cstr, "additive"))
9620
9515
  arg12 = Gosu::amAdditive;
9621
9516
  else if (!strcmp(cstr, "multiply"))
@@ -9627,7 +9522,7 @@ _wrap_Window_draw_triangle(int argc, VALUE *argv, VALUE self) {
9627
9522
  {
9628
9523
  try {
9629
9524
  Gosu_Window_drawTriangle(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12);
9630
- } catch(const std::runtime_error& e) {
9525
+ } catch (const std::exception& e) {
9631
9526
  SWIG_exception(SWIG_RuntimeError, e.what());
9632
9527
  }
9633
9528
  }
@@ -9695,7 +9590,7 @@ _wrap_Window_draw_quad(int argc, VALUE *argv, VALUE self) {
9695
9590
  arg3 = static_cast< double >(val3);
9696
9591
  {
9697
9592
  if (TYPE(argv[2]) == T_FIXNUM || TYPE(argv[2]) == T_BIGNUM)
9698
- arg4 = Gosu::Color(NUM2UINT(argv[2]));
9593
+ arg4 = Gosu::Color(NUM2ULONG(argv[2]));
9699
9594
  else
9700
9595
  {
9701
9596
  void* ptr;
@@ -9720,7 +9615,7 @@ _wrap_Window_draw_quad(int argc, VALUE *argv, VALUE self) {
9720
9615
  arg6 = static_cast< double >(val6);
9721
9616
  {
9722
9617
  if (TYPE(argv[5]) == T_FIXNUM || TYPE(argv[5]) == T_BIGNUM)
9723
- arg7 = Gosu::Color(NUM2UINT(argv[5]));
9618
+ arg7 = Gosu::Color(NUM2ULONG(argv[5]));
9724
9619
  else
9725
9620
  {
9726
9621
  void* ptr;
@@ -9745,7 +9640,7 @@ _wrap_Window_draw_quad(int argc, VALUE *argv, VALUE self) {
9745
9640
  arg9 = static_cast< double >(val9);
9746
9641
  {
9747
9642
  if (TYPE(argv[8]) == T_FIXNUM || TYPE(argv[8]) == T_BIGNUM)
9748
- arg10 = Gosu::Color(NUM2UINT(argv[8]));
9643
+ arg10 = Gosu::Color(NUM2ULONG(argv[8]));
9749
9644
  else
9750
9645
  {
9751
9646
  void* ptr;
@@ -9770,7 +9665,7 @@ _wrap_Window_draw_quad(int argc, VALUE *argv, VALUE self) {
9770
9665
  arg12 = static_cast< double >(val12);
9771
9666
  {
9772
9667
  if (TYPE(argv[11]) == T_FIXNUM || TYPE(argv[11]) == T_BIGNUM)
9773
- arg13 = Gosu::Color(NUM2UINT(argv[11]));
9668
+ arg13 = Gosu::Color(NUM2ULONG(argv[11]));
9774
9669
  else
9775
9670
  {
9776
9671
  void* ptr;
@@ -9798,6 +9693,8 @@ _wrap_Window_draw_quad(int argc, VALUE *argv, VALUE self) {
9798
9693
  SWIG_exception_fail(SWIG_ValueError, "alpha mode must be a symbol");
9799
9694
  else if (!strcmp(cstr, "default"))
9800
9695
  arg15 = Gosu::amDefault;
9696
+ else if (!strcmp(cstr, "add"))
9697
+ arg15 = Gosu::amAdditive;
9801
9698
  else if (!strcmp(cstr, "additive"))
9802
9699
  arg15 = Gosu::amAdditive;
9803
9700
  else if (!strcmp(cstr, "multiply"))
@@ -9809,7 +9706,7 @@ _wrap_Window_draw_quad(int argc, VALUE *argv, VALUE self) {
9809
9706
  {
9810
9707
  try {
9811
9708
  Gosu_Window_drawQuad(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15);
9812
- } catch(const std::runtime_error& e) {
9709
+ } catch (const std::exception& e) {
9813
9710
  SWIG_exception(SWIG_RuntimeError, e.what());
9814
9711
  }
9815
9712
  }
@@ -9836,7 +9733,7 @@ _wrap_Window_flush(int argc, VALUE *argv, VALUE self) {
9836
9733
  {
9837
9734
  try {
9838
9735
  Gosu_Window_flush(arg1);
9839
- } catch(const std::runtime_error& e) {
9736
+ } catch (const std::exception& e) {
9840
9737
  SWIG_exception(SWIG_RuntimeError, e.what());
9841
9738
  }
9842
9739
  }
@@ -9872,7 +9769,7 @@ _wrap_Window_button_downq___(int argc, VALUE *argv, VALUE self) {
9872
9769
  {
9873
9770
  try {
9874
9771
  result = (bool)Gosu_Window_isButtonDown((Gosu::Window const *)arg1,arg2);
9875
- } catch(const std::runtime_error& e) {
9772
+ } catch (const std::exception& e) {
9876
9773
  SWIG_exception(SWIG_RuntimeError, e.what());
9877
9774
  }
9878
9775
  }
@@ -9906,7 +9803,7 @@ _wrap_Window_char_to_button_id(int argc, VALUE *argv, VALUE self) {
9906
9803
  {
9907
9804
  try {
9908
9805
  result = Gosu_Window_charToButtonId(arg1);
9909
- } catch(const std::runtime_error& e) {
9806
+ } catch (const std::exception& e) {
9910
9807
  SWIG_exception(SWIG_RuntimeError, e.what());
9911
9808
  }
9912
9809
  }
@@ -9940,7 +9837,7 @@ _wrap_Window_button_id_to_char(int argc, VALUE *argv, VALUE self) {
9940
9837
  {
9941
9838
  try {
9942
9839
  result = Gosu_Window_buttonIdToChar(arg1);
9943
- } catch(const std::runtime_error& e) {
9840
+ } catch (const std::exception& e) {
9944
9841
  SWIG_exception(SWIG_RuntimeError, e.what());
9945
9842
  }
9946
9843
  }
@@ -9979,7 +9876,7 @@ _wrap_Window_text_input(int argc, VALUE *argv, VALUE self) {
9979
9876
  {
9980
9877
  try {
9981
9878
  result = (Gosu::TextInput *)Gosu_Window_textInput((Gosu::Window const *)arg1);
9982
- } catch(const std::runtime_error& e) {
9879
+ } catch (const std::exception& e) {
9983
9880
  SWIG_exception(SWIG_RuntimeError, e.what());
9984
9881
  }
9985
9882
  }
@@ -10020,7 +9917,7 @@ _wrap_Window_text_inpute___(int argc, VALUE *argv, VALUE self) {
10020
9917
  {
10021
9918
  try {
10022
9919
  Gosu_Window_setTextInput(arg1,arg2);
10023
- } catch(const std::runtime_error& e) {
9920
+ } catch (const std::exception& e) {
10024
9921
  SWIG_exception(SWIG_RuntimeError, e.what());
10025
9922
  }
10026
9923
  }
@@ -10049,7 +9946,7 @@ _wrap_Window_mouse_x(int argc, VALUE *argv, VALUE self) {
10049
9946
  {
10050
9947
  try {
10051
9948
  result = (double)Gosu_Window_mouseX((Gosu::Window const *)arg1);
10052
- } catch(const std::runtime_error& e) {
9949
+ } catch (const std::exception& e) {
10053
9950
  SWIG_exception(SWIG_RuntimeError, e.what());
10054
9951
  }
10055
9952
  }
@@ -10079,7 +9976,7 @@ _wrap_Window_mouse_y(int argc, VALUE *argv, VALUE self) {
10079
9976
  {
10080
9977
  try {
10081
9978
  result = (double)Gosu_Window_mouseY((Gosu::Window const *)arg1);
10082
- } catch(const std::runtime_error& e) {
9979
+ } catch (const std::exception& e) {
10083
9980
  SWIG_exception(SWIG_RuntimeError, e.what());
10084
9981
  }
10085
9982
  }
@@ -10123,7 +10020,7 @@ _wrap_Window_set_mouse_position(int argc, VALUE *argv, VALUE self) {
10123
10020
  {
10124
10021
  try {
10125
10022
  Gosu_Window_setMousePosition(arg1,arg2,arg3);
10126
- } catch(const std::runtime_error& e) {
10023
+ } catch (const std::exception& e) {
10127
10024
  SWIG_exception(SWIG_RuntimeError, e.what());
10128
10025
  }
10129
10026
  }
@@ -10158,7 +10055,7 @@ _wrap_Window_mouse_xe___(int argc, VALUE *argv, VALUE self) {
10158
10055
  {
10159
10056
  try {
10160
10057
  Gosu_Window_setMouseX(arg1,arg2);
10161
- } catch(const std::runtime_error& e) {
10058
+ } catch (const std::exception& e) {
10162
10059
  SWIG_exception(SWIG_RuntimeError, e.what());
10163
10060
  }
10164
10061
  }
@@ -10193,7 +10090,7 @@ _wrap_Window_mouse_ye___(int argc, VALUE *argv, VALUE self) {
10193
10090
  {
10194
10091
  try {
10195
10092
  Gosu_Window_setMouseY(arg1,arg2);
10196
- } catch(const std::runtime_error& e) {
10093
+ } catch (const std::exception& e) {
10197
10094
  SWIG_exception(SWIG_RuntimeError, e.what());
10198
10095
  }
10199
10096
  }
@@ -10222,7 +10119,7 @@ _wrap_Window_width(int argc, VALUE *argv, VALUE self) {
10222
10119
  {
10223
10120
  try {
10224
10121
  result = (int)Gosu_Window_width((Gosu::Window const *)arg1);
10225
- } catch(const std::runtime_error& e) {
10122
+ } catch (const std::exception& e) {
10226
10123
  SWIG_exception(SWIG_RuntimeError, e.what());
10227
10124
  }
10228
10125
  }
@@ -10252,7 +10149,7 @@ _wrap_Window_height(int argc, VALUE *argv, VALUE self) {
10252
10149
  {
10253
10150
  try {
10254
10151
  result = (int)Gosu_Window_height((Gosu::Window const *)arg1);
10255
- } catch(const std::runtime_error& e) {
10152
+ } catch (const std::exception& e) {
10256
10153
  SWIG_exception(SWIG_RuntimeError, e.what());
10257
10154
  }
10258
10155
  }
@@ -10282,7 +10179,7 @@ _wrap_Window_fullscreenq___(int argc, VALUE *argv, VALUE self) {
10282
10179
  {
10283
10180
  try {
10284
10181
  result = (bool)Gosu_Window_fullscreen((Gosu::Window const *)arg1);
10285
- } catch(const std::runtime_error& e) {
10182
+ } catch (const std::exception& e) {
10286
10183
  SWIG_exception(SWIG_RuntimeError, e.what());
10287
10184
  }
10288
10185
  }
@@ -10310,7 +10207,7 @@ _wrap_Window_gl__SWIG_0(int argc, VALUE *argv, VALUE self) {
10310
10207
  {
10311
10208
  try {
10312
10209
  Gosu_Window_gl__SWIG_0(arg1);
10313
- } catch(const std::runtime_error& e) {
10210
+ } catch (const std::exception& e) {
10314
10211
  SWIG_exception(SWIG_RuntimeError, e.what());
10315
10212
  }
10316
10213
  }
@@ -10345,7 +10242,7 @@ _wrap_Window_gl__SWIG_1(int argc, VALUE *argv, VALUE self) {
10345
10242
  {
10346
10243
  try {
10347
10244
  Gosu_Window_gl__SWIG_1(arg1,arg2);
10348
- } catch(const std::runtime_error& e) {
10245
+ } catch (const std::exception& e) {
10349
10246
  SWIG_exception(SWIG_RuntimeError, e.what());
10350
10247
  }
10351
10248
  }
@@ -10449,7 +10346,7 @@ _wrap_Window_clip_to(int argc, VALUE *argv, VALUE self) {
10449
10346
  {
10450
10347
  try {
10451
10348
  Gosu_Window_clipTo(arg1,arg2,arg3,arg4,arg5);
10452
- } catch(const std::runtime_error& e) {
10349
+ } catch (const std::exception& e) {
10453
10350
  SWIG_exception(SWIG_RuntimeError, e.what());
10454
10351
  }
10455
10352
  }
@@ -10478,7 +10375,7 @@ _wrap_Window_record(int argc, VALUE *argv, VALUE self) {
10478
10375
  {
10479
10376
  try {
10480
10377
  result = (Gosu::Image *)Gosu_Window_record(arg1);
10481
- } catch(const std::runtime_error& e) {
10378
+ } catch (const std::exception& e) {
10482
10379
  SWIG_exception(SWIG_RuntimeError, e.what());
10483
10380
  }
10484
10381
  }
@@ -10634,7 +10531,7 @@ _wrap_Window_transform(int argc, VALUE *argv, VALUE self) {
10634
10531
  {
10635
10532
  try {
10636
10533
  Gosu_Window_transform(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15,arg16,arg17);
10637
- } catch(const std::runtime_error& e) {
10534
+ } catch (const std::exception& e) {
10638
10535
  SWIG_exception(SWIG_RuntimeError, e.what());
10639
10536
  }
10640
10537
  }
@@ -10689,7 +10586,7 @@ _wrap_Window_rotate(int argc, VALUE *argv, VALUE self) {
10689
10586
  {
10690
10587
  try {
10691
10588
  Gosu_Window_rotate(arg1,arg2,arg3,arg4);
10692
- } catch(const std::runtime_error& e) {
10589
+ } catch (const std::exception& e) {
10693
10590
  SWIG_exception(SWIG_RuntimeError, e.what());
10694
10591
  }
10695
10592
  }
@@ -10724,7 +10621,7 @@ _wrap_Window_scale__SWIG_0(int argc, VALUE *argv, VALUE self) {
10724
10621
  {
10725
10622
  try {
10726
10623
  Gosu_Window_scale__SWIG_0(arg1,arg2);
10727
- } catch(const std::runtime_error& e) {
10624
+ } catch (const std::exception& e) {
10728
10625
  SWIG_exception(SWIG_RuntimeError, e.what());
10729
10626
  }
10730
10627
  }
@@ -10767,7 +10664,7 @@ _wrap_Window_scale__SWIG_1(int argc, VALUE *argv, VALUE self) {
10767
10664
  {
10768
10665
  try {
10769
10666
  Gosu_Window_scale__SWIG_1(arg1,arg2,arg3);
10770
- } catch(const std::runtime_error& e) {
10667
+ } catch (const std::exception& e) {
10771
10668
  SWIG_exception(SWIG_RuntimeError, e.what());
10772
10669
  }
10773
10670
  }
@@ -10826,7 +10723,7 @@ _wrap_Window_scale__SWIG_2(int argc, VALUE *argv, VALUE self) {
10826
10723
  {
10827
10724
  try {
10828
10725
  Gosu_Window_scale__SWIG_2(arg1,arg2,arg3,arg4,arg5);
10829
- } catch(const std::runtime_error& e) {
10726
+ } catch (const std::exception& e) {
10830
10727
  SWIG_exception(SWIG_RuntimeError, e.what());
10831
10728
  }
10832
10729
  }
@@ -10960,7 +10857,7 @@ _wrap_Window_translate(int argc, VALUE *argv, VALUE self) {
10960
10857
  {
10961
10858
  try {
10962
10859
  Gosu_Window_translate(arg1,arg2,arg3);
10963
- } catch(const std::runtime_error& e) {
10860
+ } catch (const std::exception& e) {
10964
10861
  SWIG_exception(SWIG_RuntimeError, e.what());
10965
10862
  }
10966
10863
  }
@@ -11330,8 +11227,8 @@ SWIGEXPORT void Init_gosu(void) {
11330
11227
  SWIG_RubyInitializeTrackings();
11331
11228
  rb_define_const(mGosu, "MAJOR_VERSION", SWIG_From_int(static_cast< int >(0)));
11332
11229
  rb_define_const(mGosu, "MINOR_VERSION", SWIG_From_int(static_cast< int >(7)));
11333
- rb_define_const(mGosu, "POINT_VERSION", SWIG_From_int(static_cast< int >(37)));
11334
- rb_define_const(mGosu, "VERSION", SWIG_FromCharPtr("0.7.37"));
11230
+ rb_define_const(mGosu, "POINT_VERSION", SWIG_From_int(static_cast< int >(38)));
11231
+ rb_define_const(mGosu, "VERSION", SWIG_FromCharPtr("0.7.38"));
11335
11232
  rb_define_module_function(mGosu, "milliseconds", VALUEFUNC(_wrap_milliseconds), -1);
11336
11233
  rb_define_module_function(mGosu, "random", VALUEFUNC(_wrap_random), -1);
11337
11234
  rb_define_module_function(mGosu, "degrees_to_radians", VALUEFUNC(_wrap_degrees_to_radians), -1);