gosu 0.7.37 → 0.7.38

Sign up to get free protection for your applications and to get access to all the features.
@@ -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);