gosu 0.13.3 → 0.14.0.pre2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/Gosu/Audio.hpp +15 -11
  3. data/Gosu/Font.hpp +24 -20
  4. data/Gosu/Fwd.hpp +1 -1
  5. data/Gosu/Graphics.hpp +8 -9
  6. data/Gosu/ImageData.hpp +1 -1
  7. data/Gosu/Input.hpp +1 -1
  8. data/Gosu/Math.hpp +0 -18
  9. data/Gosu/Text.hpp +22 -30
  10. data/Gosu/TextInput.hpp +13 -0
  11. data/Gosu/Utility.hpp +2 -0
  12. data/Gosu/Window.hpp +3 -3
  13. data/README.md +3 -4
  14. data/ext/gosu/extconf.rb +7 -9
  15. data/lib/gosu/swig_patches.rb +1 -4
  16. data/rdoc/gosu.rb +34 -9
  17. data/src/Audio.cpp +6 -6
  18. data/src/AudioImpl.cpp +2 -2
  19. data/src/Bitmap.cpp +1 -2
  20. data/src/BitmapIO.cpp +21 -2
  21. data/src/BlockAllocator.cpp +1 -1
  22. data/src/Channel.cpp +7 -1
  23. data/src/ClipRectStack.hpp +4 -1
  24. data/src/Color.cpp +2 -1
  25. data/src/DirectoriesWin.cpp +1 -1
  26. data/src/DrawOp.hpp +8 -4
  27. data/src/DrawOpQueue.hpp +13 -24
  28. data/src/FileUnix.cpp +3 -1
  29. data/src/Font.cpp +92 -96
  30. data/src/GosuGLView.cpp +59 -31
  31. data/src/GosuGLView.hpp +14 -0
  32. data/src/GosuViewController.cpp +21 -21
  33. data/src/{GosuViewController.h → GosuViewController.hpp} +2 -4
  34. data/src/Graphics.cpp +71 -38
  35. data/src/GraphicsImpl.hpp +12 -29
  36. data/src/Image.cpp +5 -7
  37. data/src/Input.cpp +7 -5
  38. data/src/InputUIKit.cpp +19 -37
  39. data/src/Macro.cpp +10 -2
  40. data/src/MarkupParser.cpp +241 -0
  41. data/src/MarkupParser.hpp +61 -0
  42. data/src/Math.cpp +1 -1
  43. data/src/OffScreenTarget.cpp +99 -0
  44. data/src/OffScreenTarget.hpp +23 -0
  45. data/src/OggFile.hpp +10 -0
  46. data/src/RenderState.hpp +0 -2
  47. data/src/Resolution.cpp +2 -2
  48. data/src/RubyGosu.cxx +457 -244
  49. data/src/TexChunk.cpp +8 -6
  50. data/src/Text.cpp +58 -345
  51. data/src/TextBuilder.cpp +138 -0
  52. data/src/TextBuilder.hpp +55 -0
  53. data/src/TextInput.cpp +27 -10
  54. data/src/Texture.cpp +22 -17
  55. data/src/Texture.hpp +19 -20
  56. data/src/TimingApple.cpp +5 -7
  57. data/src/TimingUnix.cpp +1 -4
  58. data/src/TimingWin.cpp +4 -1
  59. data/src/TrueTypeFont.cpp +282 -0
  60. data/src/TrueTypeFont.hpp +66 -0
  61. data/src/TrueTypeFontApple.cpp +65 -0
  62. data/src/TrueTypeFontUnix.cpp +91 -0
  63. data/src/TrueTypeFontWin.cpp +82 -0
  64. data/src/Utility.cpp +40 -0
  65. data/src/Window.cpp +7 -6
  66. data/src/WindowUIKit.cpp +9 -4
  67. data/src/stb_truetype.h +4589 -0
  68. data/src/utf8proc.c +755 -0
  69. data/src/utf8proc.h +699 -0
  70. data/src/utf8proc_data.h +14386 -0
  71. metadata +23 -16
  72. data/src/FormattedString.cpp +0 -237
  73. data/src/FormattedString.hpp +0 -47
  74. data/src/GosuAppDelegate.cpp +0 -30
  75. data/src/GosuAppDelegate.h +0 -8
  76. data/src/GosuGLView.h +0 -8
  77. data/src/TextApple.cpp +0 -212
  78. data/src/TextTTFWin.cpp +0 -197
  79. data/src/TextUnix.cpp +0 -280
  80. data/src/TextWin.cpp +0 -191
@@ -0,0 +1,61 @@
1
+ #pragma once
2
+
3
+ #include "GraphicsImpl.hpp"
4
+ #include <functional>
5
+ #include <vector>
6
+
7
+ namespace Gosu
8
+ {
9
+ struct FormattedString
10
+ {
11
+ std::u32string text;
12
+ Color color = Color::WHITE;
13
+ unsigned flags = 0;
14
+
15
+ bool can_be_merged_with(const FormattedString& other) const
16
+ {
17
+ return color == other.color && flags == other.flags;
18
+ }
19
+ };
20
+
21
+ class MarkupParser
22
+ {
23
+ // The current parser position.
24
+ const char* markup;
25
+ // A substring that will be built up during parsing, then passed to the consumer.
26
+ std::string substring;
27
+
28
+ // Current b/i/u counters. An opening tag increases by 1, a closing tag decreases by 1.
29
+ // Text is bold/italic/underline when the respective counter is > 0.
30
+ int b, i, u;
31
+
32
+ // Current color stack.
33
+ std::vector<Color> c{ Color::WHITE };
34
+
35
+ enum { IGNORE_WORDS, ADDING_WORD, ADDING_WHITESPACE } word_state;
36
+ std::vector<FormattedString> substrings;
37
+ std::function<void (std::vector<FormattedString>)> consumer;
38
+
39
+ unsigned flags() const;
40
+
41
+ template<size_t N>
42
+ bool match_and_skip(const char (&chars)[N])
43
+ {
44
+ return match_and_skip(chars, N - 1 /* do not match terminating zero */);
45
+ }
46
+
47
+ bool match_and_skip(const char* chars, std::size_t length);
48
+
49
+ bool parse_markup();
50
+ bool parse_escape_entity();
51
+
52
+ void add_current_substring();
53
+ void add_composed_substring(std::u32string&& substring);
54
+ void flush_to_consumer();
55
+
56
+ public:
57
+ MarkupParser(const char* markup, unsigned base_flags, bool split_words,
58
+ std::function<void (std::vector<FormattedString>)> consumer);
59
+ void parse();
60
+ };
61
+ }
@@ -46,7 +46,7 @@ int Gosu::wrap(int value, int min, int max)
46
46
 
47
47
  float Gosu::wrap(float value, float min, float max)
48
48
  {
49
- double result = fmod(value - min, max - min);
49
+ float result = fmodf(value - min, max - min);
50
50
  return result < 0 ? result + max : result + min;
51
51
  }
52
52
 
@@ -0,0 +1,99 @@
1
+ #include "OffScreenTarget.hpp"
2
+ #include "Texture.hpp"
3
+ #include <Gosu/Image.hpp>
4
+ #include <Gosu/Platform.hpp>
5
+ #ifndef GOSU_IS_IPHONE
6
+ #include <SDL.h>
7
+ #endif
8
+ using namespace std;
9
+
10
+ #ifdef GOSU_IS_OPENGLES
11
+ #define GOSU_LOAD_GL_EXT(fn, type) \
12
+ static auto fn = fn ## OES;
13
+
14
+ #define GOSU_GL_CONST(name) \
15
+ name ## _OES
16
+
17
+ #define GOSU_GL_DEPTH_COMPONENT \
18
+ GL_DEPTH_COMPONENT16_OES
19
+ #else
20
+ #define GOSU_LOAD_GL_EXT(fn, type) \
21
+ static auto fn = (type) SDL_GL_GetProcAddress(#fn); \
22
+ if (!fn) throw runtime_error("Unable to load " #fn);
23
+
24
+ #define GOSU_GL_CONST(name) \
25
+ name
26
+
27
+ #define GOSU_GL_DEPTH_COMPONENT \
28
+ GL_DEPTH_COMPONENT
29
+ #endif
30
+
31
+ Gosu::OffScreenTarget::OffScreenTarget(int width, int height)
32
+ {
33
+ #ifndef GOSU_IS_IPHONE
34
+ if (!SDL_GL_ExtensionSupported("GL_EXT_framebuffer_object")) {
35
+ throw runtime_error("Missing GL_EXT_framebuffer_object extension");
36
+ }
37
+ #endif
38
+
39
+ // Create a new texture that will be our rendering target.
40
+ texture = make_shared<Texture>(width, height, false);
41
+ // Mark the full texture as blocked for our TexChunk.
42
+ texture->block(0, 0, width, height);
43
+
44
+ // Besides the texture, also create a renderbuffer for depth information.
45
+ // Gosu doesn't use this, but custom OpenGL code could might.
46
+ GOSU_LOAD_GL_EXT(glGenRenderbuffers, PFNGLGENRENDERBUFFERSPROC);
47
+ glGenRenderbuffers(1, &renderbuffer);
48
+
49
+ GOSU_LOAD_GL_EXT(glBindRenderbuffer, PFNGLBINDRENDERBUFFERPROC);
50
+ glBindRenderbuffer(GOSU_GL_CONST(GL_RENDERBUFFER), renderbuffer);
51
+
52
+ GOSU_LOAD_GL_EXT(glRenderbufferStorage, PFNGLRENDERBUFFERSTORAGEPROC);
53
+ glRenderbufferStorage(GOSU_GL_CONST(GL_RENDERBUFFER), GOSU_GL_DEPTH_COMPONENT, width, height);
54
+ glBindRenderbuffer(GOSU_GL_CONST(GL_RENDERBUFFER), 0);
55
+
56
+ // Now tie everything together.
57
+ GOSU_LOAD_GL_EXT(glGenFramebuffers, PFNGLGENFRAMEBUFFERSPROC);
58
+ glGenFramebuffers(1, &framebuffer);
59
+
60
+ GOSU_LOAD_GL_EXT(glBindFramebuffer, PFNGLBINDFRAMEBUFFERPROC);
61
+ glBindFramebuffer(GOSU_GL_CONST(GL_FRAMEBUFFER), framebuffer);
62
+
63
+ GOSU_LOAD_GL_EXT(glFramebufferTexture2D, PFNGLFRAMEBUFFERTEXTURE2DPROC);
64
+ glFramebufferTexture2D(GOSU_GL_CONST(GL_FRAMEBUFFER), GOSU_GL_CONST(GL_COLOR_ATTACHMENT0),
65
+ GL_TEXTURE_2D, texture->tex_name(), 0);
66
+
67
+ GOSU_LOAD_GL_EXT(glFramebufferRenderbuffer, PFNGLFRAMEBUFFERRENDERBUFFERPROC);
68
+ glFramebufferRenderbuffer(GOSU_GL_CONST(GL_FRAMEBUFFER), GOSU_GL_CONST(GL_DEPTH_ATTACHMENT),
69
+ GOSU_GL_CONST(GL_RENDERBUFFER), renderbuffer);
70
+ }
71
+
72
+ Gosu::OffScreenTarget::~OffScreenTarget()
73
+ {
74
+ try {
75
+ GOSU_LOAD_GL_EXT(glDeleteRenderbuffers, PFNGLDELETERENDERBUFFERSPROC);
76
+ glDeleteRenderbuffers(1, &renderbuffer);
77
+
78
+ GOSU_LOAD_GL_EXT(glDeleteFramebuffers, PFNGLDELETEFRAMEBUFFERSPROC);
79
+ glDeleteFramebuffers(1, &framebuffer);
80
+ } catch (...) {
81
+ // If we can't load these functions, just accept the resource leak.
82
+ }
83
+ }
84
+
85
+ Gosu::Image Gosu::OffScreenTarget::render(const std::function<void ()>& f)
86
+ {
87
+ GOSU_LOAD_GL_EXT(glBindFramebuffer, PFNGLBINDFRAMEBUFFERPROC);
88
+ glBindFramebuffer(GOSU_GL_CONST(GL_FRAMEBUFFER), framebuffer);
89
+
90
+ GOSU_LOAD_GL_EXT(glCheckFramebufferStatus, PFNGLCHECKFRAMEBUFFERSTATUSPROC);
91
+ GLenum status = glCheckFramebufferStatus(GOSU_GL_CONST(GL_FRAMEBUFFER));
92
+ if (status != GOSU_GL_CONST(GL_FRAMEBUFFER_COMPLETE)) throw runtime_error("Incomplete framebuffer");
93
+
94
+ f();
95
+ glBindFramebuffer(GOSU_GL_CONST(GL_FRAMEBUFFER), 0);
96
+
97
+ unique_ptr<ImageData> tex_chunk(new TexChunk(texture, 0, 0, texture->width(), texture->height(), 0));
98
+ return Image(move(tex_chunk));
99
+ }
@@ -0,0 +1,23 @@
1
+ #pragma once
2
+
3
+ #include "GraphicsImpl.hpp"
4
+
5
+ namespace Gosu
6
+ {
7
+ class OffScreenTarget
8
+ {
9
+ std::shared_ptr<Texture> texture;
10
+ GLuint renderbuffer;
11
+ GLuint framebuffer;
12
+
13
+ OffScreenTarget(const OffScreenTarget& other) = delete;
14
+ OffScreenTarget& operator=(const OffScreenTarget& other) = delete;
15
+ OffScreenTarget(OffScreenTarget&& other) = delete;
16
+ OffScreenTarget& operator=(OffScreenTarget&& other) = delete;
17
+
18
+ public:
19
+ OffScreenTarget(int width, int height);
20
+ ~OffScreenTarget();
21
+ Gosu::Image render(const std::function<void ()>& f);
22
+ };
23
+ }
@@ -5,9 +5,19 @@
5
5
  #include <stdexcept>
6
6
  #include <string>
7
7
 
8
+ // Disable comma warnings in stb headers.
9
+ #ifdef __GNUC__
10
+ #pragma GCC diagnostic push
11
+ #pragma GCC diagnostic ignored "-Wcomma"
12
+ #endif
13
+
8
14
  #define STB_VORBIS_HEADER_ONLY
9
15
  #include "stb_vorbis.c"
10
16
 
17
+ #ifdef __GNUC__
18
+ #pragma GCC diagnostic pop
19
+ #endif
20
+
11
21
  namespace Gosu
12
22
  {
13
23
  class OggFile : public AudioFile
@@ -130,8 +130,6 @@ public:
130
130
  if (new_texture == texture) return;
131
131
 
132
132
  if (new_texture) {
133
- // New texture *is* really a texture - change to it.
134
-
135
133
  if (!texture) {
136
134
  glEnable(GL_TEXTURE_2D);
137
135
  }
@@ -75,12 +75,12 @@ unsigned Gosu::screen_height()
75
75
  #if !defined(GOSU_IS_MAC)
76
76
  unsigned Gosu::available_width()
77
77
  {
78
- return Gosu::screen_width() * 0.9;
78
+ return static_cast<unsigned>(Gosu::screen_width() * 0.9);
79
79
  }
80
80
 
81
81
  unsigned Gosu::available_height()
82
82
  {
83
- return Gosu::screen_height() * 0.8;
83
+ return static_cast<unsigned>(Gosu::screen_height() * 0.8);
84
84
  }
85
85
  #endif
86
86
  #endif
@@ -2269,23 +2269,13 @@ namespace Gosu
2269
2269
  }
2270
2270
 
2271
2271
  void al_shutdown();
2272
-
2273
- void register_entity(const std::string& name, Gosu::Image* image)
2274
- {
2275
- register_entity(name, image->data().to_bitmap());
2276
- }
2277
2272
  }
2278
2273
 
2279
2274
  #include <cstring>
2280
2275
  #include <ctime>
2281
2276
  #include <sstream>
2282
2277
 
2283
- // Preprocessor check for 1.9 or higher (thanks banister)
2284
- #if defined(ROBJECT_EMBED_LEN_MAX)
2285
2278
  #define ENFORCE_UTF8(val) rb_funcall(val, rb_intern("force_encoding"), 1, rb_str_new2("UTF-8"))
2286
- #else
2287
- #define ENFORCE_UTF8(val)
2288
- #endif
2289
2279
 
2290
2280
  namespace Gosu
2291
2281
  {
@@ -2308,8 +2298,8 @@ namespace Gosu
2308
2298
  VALUE conversion = rb_str_new2("to_blob { self.format = 'RGBA'; self.depth = 8 }");
2309
2299
  VALUE blob = rb_obj_instance_eval(1, &conversion, val);
2310
2300
  rb_check_safe_obj(blob);
2311
- unsigned width = NUM2ULONG(rb_funcall(val, rb_intern("columns"), 0));
2312
- unsigned height = NUM2ULONG(rb_funcall(val, rb_intern("rows"), 0));
2301
+ int width = NUM2ULONG(rb_funcall(val, rb_intern("columns"), 0));
2302
+ int height = NUM2ULONG(rb_funcall(val, rb_intern("rows"), 0));
2313
2303
 
2314
2304
  std::size_t size = width * height * 4;
2315
2305
  bitmap.resize(width, height, Gosu::Color::NONE);
@@ -2418,6 +2408,10 @@ namespace Gosu
2418
2408
  return new Gosu::Image(Gosu::Graphics::record(width, height, [] { rb_yield(Qnil); }));
2419
2409
  }
2420
2410
 
2411
+ Gosu::Image* render(int width, int height) {
2412
+ return new Gosu::Image(Gosu::Graphics::render(width, height, [] { rb_yield(Qnil); }));
2413
+ }
2414
+
2421
2415
  // This method cannot be called "transform" because then it would be an ambiguous overload of
2422
2416
  // Gosu::Transform Gosu::transform(...).
2423
2417
  // So it has to be renamed via %rename below... :( - same for the other transformations.
@@ -2787,10 +2781,10 @@ SWIG_AsVal_int (VALUE obj, int *val)
2787
2781
  return res;
2788
2782
  }
2789
2783
 
2790
- SWIGINTERN Gosu::Font *new_Gosu_Font__SWIG_0(Gosu::Window &window,std::string const &font_name,unsigned int height){
2784
+ SWIGINTERN Gosu::Font *new_Gosu_Font__SWIG_0(Gosu::Window &window,std::string const &font_name,int height){
2791
2785
  return new Gosu::Font(height, font_name);
2792
2786
  }
2793
- SWIGINTERN Gosu::Font *new_Gosu_Font__SWIG_1(unsigned int height,VALUE options=0){
2787
+ SWIGINTERN Gosu::Font *new_Gosu_Font__SWIG_1(int height,VALUE options=0){
2794
2788
  std::string font_name = Gosu::default_font_name();
2795
2789
 
2796
2790
  if (options) {
@@ -2821,78 +2815,6 @@ SWIGINTERN Gosu::Font *new_Gosu_Font__SWIG_1(unsigned int height,VALUE options=0
2821
2815
 
2822
2816
  return new Gosu::Font(height, font_name);
2823
2817
  }
2824
- SWIGINTERN void Gosu_Font_set_image(Gosu::Font *self,wchar_t wc,VALUE source){
2825
- Gosu::Bitmap bitmap;
2826
- Gosu::load_bitmap(bitmap, source);
2827
- self->set_image(wc, Gosu::Image(bitmap, Gosu::IF_SMOOTH));
2828
- }
2829
-
2830
- #include <float.h>
2831
-
2832
-
2833
- #include <math.h>
2834
-
2835
-
2836
- /* Getting isfinite working pre C99 across multiple platforms is non-trivial. Users can provide SWIG_isfinite on older platforms. */
2837
- #ifndef SWIG_isfinite
2838
- /* isfinite() is a macro for C99 */
2839
- # if defined(isfinite)
2840
- # define SWIG_isfinite(X) (isfinite(X))
2841
- # elif defined __cplusplus && __cplusplus >= 201103L
2842
- /* Use a template so that this works whether isfinite() is std::isfinite() or
2843
- * in the global namespace. The reality seems to vary between compiler
2844
- * versions.
2845
- *
2846
- * Make sure namespace std exists to avoid compiler warnings.
2847
- *
2848
- * extern "C++" is required as this fragment can end up inside an extern "C" { } block
2849
- */
2850
- namespace std { }
2851
- extern "C++" template<typename T>
2852
- inline int SWIG_isfinite_func(T x) {
2853
- using namespace std;
2854
- return isfinite(x);
2855
- }
2856
- # define SWIG_isfinite(X) (SWIG_isfinite_func(X))
2857
- # elif defined(_MSC_VER)
2858
- # define SWIG_isfinite(X) (_finite(X))
2859
- # elif defined(__sun) && defined(__SVR4)
2860
- # include <ieeefp.h>
2861
- # define SWIG_isfinite(X) (finite(X))
2862
- # endif
2863
- #endif
2864
-
2865
-
2866
- /* Accept infinite as a valid float value unless we are unable to check if a value is finite */
2867
- #ifdef SWIG_isfinite
2868
- # define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX) && SWIG_isfinite(X))
2869
- #else
2870
- # define SWIG_Float_Overflow_Check(X) ((X < -FLT_MAX || X > FLT_MAX))
2871
- #endif
2872
-
2873
-
2874
- SWIGINTERN int
2875
- SWIG_AsVal_float (VALUE obj, float *val)
2876
- {
2877
- double v;
2878
- int res = SWIG_AsVal_double (obj, &v);
2879
- if (SWIG_IsOK(res)) {
2880
- if (SWIG_Float_Overflow_Check(v)) {
2881
- return SWIG_OverflowError;
2882
- } else {
2883
- if (val) *val = static_cast< float >(v);
2884
- }
2885
- }
2886
- return res;
2887
- }
2888
-
2889
-
2890
- SWIGINTERNINLINE VALUE
2891
- SWIG_From_float (float value)
2892
- {
2893
- return SWIG_From_double (value);
2894
- }
2895
-
2896
2818
  SWIGINTERN Gosu::Image *new_Gosu_Image(VALUE source,VALUE options=0){
2897
2819
  Gosu::Bitmap bmp;
2898
2820
  Gosu::load_bitmap(bmp, source);
@@ -2955,10 +2877,10 @@ SWIGINTERN Gosu::Image *Gosu_Image_subimage(Gosu::Image *self,int x,int y,int w,
2955
2877
  std::unique_ptr<Gosu::ImageData> image_data = self->data().subimage(x, y, w, h);
2956
2878
  return image_data.get() ? new Gosu::Image(std::move(image_data)) : nullptr;
2957
2879
  }
2958
- SWIGINTERN Gosu::Image *Gosu_Image_from_text(std::string const &text,unsigned int font_height,VALUE options=0){
2880
+ SWIGINTERN Gosu::Image *Gosu_Image_from_text(std::string const &text,int font_height,VALUE options=0){
2959
2881
  std::string font = Gosu::default_font_name();
2960
- unsigned width = 0xfefefefe;
2961
- unsigned spacing = 0;
2882
+ int width = 0;
2883
+ int spacing = 0;
2962
2884
  Gosu::Alignment align = Gosu::AL_LEFT;
2963
2885
  unsigned flags = 0;
2964
2886
 
@@ -3016,7 +2938,7 @@ SWIGINTERN Gosu::Image *Gosu_Image_from_text(std::string const &text,unsigned in
3016
2938
  }
3017
2939
 
3018
2940
  Gosu::Bitmap bitmap;
3019
- if (width == 0xfefefefe) {
2941
+ if (width == 0) {
3020
2942
  bitmap = Gosu::create_text(text, font, font_height);
3021
2943
  }
3022
2944
  else {
@@ -3104,6 +3026,38 @@ SWIGINTERN void Gosu_Image_insert(Gosu::Image *self,VALUE source,int x,int y){
3104
3026
  Gosu::load_bitmap(bmp, source);
3105
3027
  self->data().insert(bmp, x, y);
3106
3028
  }
3029
+ SWIGINTERN std::string Gosu_Image_inspect(Gosu::Image const *self,int max_width=80){
3030
+ try {
3031
+ Gosu::Bitmap bmp = self->data().to_bitmap();
3032
+ // This is the scaled image width inside the ASCII art border, so make sure
3033
+ // there will be room for a leading and trailing '#' character.
3034
+ int w = Gosu::clamp<int>(max_width - 2, 0, bmp.width());
3035
+ // For images with width == 0, the output will have one line per pixel.
3036
+ // Otherwise, scale proportionally.
3037
+ int h = (w ? bmp.height() * w / bmp.width() : bmp.height());
3038
+
3039
+ // This is the length of one row in the string output, including the border
3040
+ // and a trailing newline.
3041
+ int stride = w + 3;
3042
+ std::string str(stride * (h + 2), '#');
3043
+ str[stride - 1] = '\n'; // first newline
3044
+ str.back() = '\n'; // last newline
3045
+
3046
+ for (int y = 0; y < h; ++y) {
3047
+ for (int x = 0; x < w; ++x) {
3048
+ int scaled_x = x * bmp.width() / w;
3049
+ int scaled_y = y * bmp.height() / h;
3050
+ int alpha3bit = bmp.get_pixel(scaled_x, scaled_y).alpha() / 32;
3051
+ str[(y + 1) * stride + (x + 1)] = " .:ioVM@"[alpha3bit];
3052
+ }
3053
+ str[(y + 1) * stride + (w + 2)] = '\n'; // newline after row of pixels
3054
+ }
3055
+ return str;
3056
+ }
3057
+ catch (...) {
3058
+ return "<Gosu::Image without bitmap representation>";
3059
+ }
3060
+ }
3107
3061
  SWIGINTERN VALUE Gosu_TextInput_caret_pos(Gosu::TextInput *self){
3108
3062
  std::string prefix = self->text().substr(0, self->caret_pos());
3109
3063
  VALUE rb_prefix = rb_str_new2(prefix.c_str());
@@ -5150,7 +5104,7 @@ _wrap_Font_name(int argc, VALUE *argv, VALUE self) {
5150
5104
  Gosu::Font *arg1 = (Gosu::Font *) 0 ;
5151
5105
  void *argp1 = 0 ;
5152
5106
  int res1 = 0 ;
5153
- std::string result;
5107
+ std::string *result = 0 ;
5154
5108
  VALUE vresult = Qnil;
5155
5109
 
5156
5110
  if ((argc < 0) || (argc > 0)) {
@@ -5163,13 +5117,13 @@ _wrap_Font_name(int argc, VALUE *argv, VALUE self) {
5163
5117
  arg1 = reinterpret_cast< Gosu::Font * >(argp1);
5164
5118
  {
5165
5119
  try {
5166
- result = ((Gosu::Font const *)arg1)->name();
5120
+ result = (std::string *) &((Gosu::Font const *)arg1)->name();
5167
5121
  }
5168
5122
  catch (const std::exception& e) {
5169
5123
  SWIG_exception(SWIG_RuntimeError, e.what());
5170
5124
  }
5171
5125
  }
5172
- vresult = SWIG_From_std_string(static_cast< std::string >(result));
5126
+ vresult = SWIG_From_std_string(static_cast< std::string >(*result));
5173
5127
  return vresult;
5174
5128
  fail:
5175
5129
  return Qnil;
@@ -5181,7 +5135,7 @@ _wrap_Font_height(int argc, VALUE *argv, VALUE self) {
5181
5135
  Gosu::Font *arg1 = (Gosu::Font *) 0 ;
5182
5136
  void *argp1 = 0 ;
5183
5137
  int res1 = 0 ;
5184
- unsigned int result;
5138
+ int result;
5185
5139
  VALUE vresult = Qnil;
5186
5140
 
5187
5141
  if ((argc < 0) || (argc > 0)) {
@@ -5194,13 +5148,13 @@ _wrap_Font_height(int argc, VALUE *argv, VALUE self) {
5194
5148
  arg1 = reinterpret_cast< Gosu::Font * >(argp1);
5195
5149
  {
5196
5150
  try {
5197
- result = (unsigned int)((Gosu::Font const *)arg1)->height();
5151
+ result = (int)((Gosu::Font const *)arg1)->height();
5198
5152
  }
5199
5153
  catch (const std::exception& e) {
5200
5154
  SWIG_exception(SWIG_RuntimeError, e.what());
5201
5155
  }
5202
5156
  }
5203
- vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
5157
+ vresult = SWIG_From_int(static_cast< int >(result));
5204
5158
  return vresult;
5205
5159
  fail:
5206
5160
  return Qnil;
@@ -5702,15 +5656,184 @@ fail:
5702
5656
  }
5703
5657
 
5704
5658
 
5659
+ SWIGINTERN VALUE
5660
+ _wrap_Font_set_image__SWIG_0(int argc, VALUE *argv, VALUE self) {
5661
+ Gosu::Font *arg1 = (Gosu::Font *) 0 ;
5662
+ std::string arg2 ;
5663
+ unsigned int arg3 ;
5664
+ Gosu::Image *arg4 = 0 ;
5665
+ void *argp1 = 0 ;
5666
+ int res1 = 0 ;
5667
+ unsigned int val3 ;
5668
+ int ecode3 = 0 ;
5669
+ void *argp4 ;
5670
+ int res4 = 0 ;
5671
+
5672
+ if ((argc < 3) || (argc > 3)) {
5673
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
5674
+ }
5675
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Gosu__Font, 0 | 0 );
5676
+ if (!SWIG_IsOK(res1)) {
5677
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::Font *","set_image", 1, self ));
5678
+ }
5679
+ arg1 = reinterpret_cast< Gosu::Font * >(argp1);
5680
+ {
5681
+ std::string *ptr = (std::string *)0;
5682
+ int res = SWIG_AsPtr_std_string(argv[0], &ptr);
5683
+ if (!SWIG_IsOK(res) || !ptr) {
5684
+ SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), Ruby_Format_TypeError( "", "std::string","set_image", 2, argv[0] ));
5685
+ }
5686
+ arg2 = *ptr;
5687
+ if (SWIG_IsNewObj(res)) delete ptr;
5688
+ }
5689
+ ecode3 = SWIG_AsVal_unsigned_SS_int(argv[1], &val3);
5690
+ if (!SWIG_IsOK(ecode3)) {
5691
+ SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "unsigned int","set_image", 3, argv[1] ));
5692
+ }
5693
+ arg3 = static_cast< unsigned int >(val3);
5694
+ res4 = SWIG_ConvertPtr(argv[2], &argp4, SWIGTYPE_p_Gosu__Image, 0 );
5695
+ if (!SWIG_IsOK(res4)) {
5696
+ SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "Gosu::Image const &","set_image", 4, argv[2] ));
5697
+ }
5698
+ if (!argp4) {
5699
+ SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Gosu::Image const &","set_image", 4, argv[2]));
5700
+ }
5701
+ arg4 = reinterpret_cast< Gosu::Image * >(argp4);
5702
+ {
5703
+ try {
5704
+ (arg1)->set_image(arg2,arg3,(Gosu::Image const &)*arg4);
5705
+ }
5706
+ catch (const std::exception& e) {
5707
+ SWIG_exception(SWIG_RuntimeError, e.what());
5708
+ }
5709
+ }
5710
+ return Qnil;
5711
+ fail:
5712
+ return Qnil;
5713
+ }
5714
+
5715
+
5716
+ SWIGINTERN VALUE
5717
+ _wrap_Font_set_image__SWIG_1(int argc, VALUE *argv, VALUE self) {
5718
+ Gosu::Font *arg1 = (Gosu::Font *) 0 ;
5719
+ std::string arg2 ;
5720
+ Gosu::Image *arg3 = 0 ;
5721
+ void *argp1 = 0 ;
5722
+ int res1 = 0 ;
5723
+ void *argp3 ;
5724
+ int res3 = 0 ;
5725
+
5726
+ if ((argc < 2) || (argc > 2)) {
5727
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
5728
+ }
5729
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Gosu__Font, 0 | 0 );
5730
+ if (!SWIG_IsOK(res1)) {
5731
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::Font *","set_image", 1, self ));
5732
+ }
5733
+ arg1 = reinterpret_cast< Gosu::Font * >(argp1);
5734
+ {
5735
+ std::string *ptr = (std::string *)0;
5736
+ int res = SWIG_AsPtr_std_string(argv[0], &ptr);
5737
+ if (!SWIG_IsOK(res) || !ptr) {
5738
+ SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), Ruby_Format_TypeError( "", "std::string","set_image", 2, argv[0] ));
5739
+ }
5740
+ arg2 = *ptr;
5741
+ if (SWIG_IsNewObj(res)) delete ptr;
5742
+ }
5743
+ res3 = SWIG_ConvertPtr(argv[1], &argp3, SWIGTYPE_p_Gosu__Image, 0 );
5744
+ if (!SWIG_IsOK(res3)) {
5745
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "Gosu::Image const &","set_image", 3, argv[1] ));
5746
+ }
5747
+ if (!argp3) {
5748
+ SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "Gosu::Image const &","set_image", 3, argv[1]));
5749
+ }
5750
+ arg3 = reinterpret_cast< Gosu::Image * >(argp3);
5751
+ {
5752
+ try {
5753
+ (arg1)->set_image(arg2,(Gosu::Image const &)*arg3);
5754
+ }
5755
+ catch (const std::exception& e) {
5756
+ SWIG_exception(SWIG_RuntimeError, e.what());
5757
+ }
5758
+ }
5759
+ return Qnil;
5760
+ fail:
5761
+ return Qnil;
5762
+ }
5763
+
5764
+
5765
+ SWIGINTERN VALUE _wrap_Font_set_image(int nargs, VALUE *args, VALUE self) {
5766
+ int argc;
5767
+ VALUE argv[5];
5768
+ int ii;
5769
+
5770
+ argc = nargs + 1;
5771
+ argv[0] = self;
5772
+ if (argc > 5) SWIG_fail;
5773
+ for (ii = 1; (ii < argc); ++ii) {
5774
+ argv[ii] = args[ii-1];
5775
+ }
5776
+ if (argc == 3) {
5777
+ int _v;
5778
+ void *vptr = 0;
5779
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Gosu__Font, 0);
5780
+ _v = SWIG_CheckState(res);
5781
+ if (_v) {
5782
+ int res = SWIG_AsPtr_std_string(argv[1], (std::string**)(0));
5783
+ _v = SWIG_CheckState(res);
5784
+ if (_v) {
5785
+ void *vptr = 0;
5786
+ int res = SWIG_ConvertPtr(argv[2], &vptr, SWIGTYPE_p_Gosu__Image, 0);
5787
+ _v = SWIG_CheckState(res);
5788
+ if (_v) {
5789
+ return _wrap_Font_set_image__SWIG_1(nargs, args, self);
5790
+ }
5791
+ }
5792
+ }
5793
+ }
5794
+ if (argc == 4) {
5795
+ int _v;
5796
+ void *vptr = 0;
5797
+ int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_Gosu__Font, 0);
5798
+ _v = SWIG_CheckState(res);
5799
+ if (_v) {
5800
+ int res = SWIG_AsPtr_std_string(argv[1], (std::string**)(0));
5801
+ _v = SWIG_CheckState(res);
5802
+ if (_v) {
5803
+ {
5804
+ int res = SWIG_AsVal_unsigned_SS_int(argv[2], NULL);
5805
+ _v = SWIG_CheckState(res);
5806
+ }
5807
+ if (_v) {
5808
+ void *vptr = 0;
5809
+ int res = SWIG_ConvertPtr(argv[3], &vptr, SWIGTYPE_p_Gosu__Image, 0);
5810
+ _v = SWIG_CheckState(res);
5811
+ if (_v) {
5812
+ return _wrap_Font_set_image__SWIG_0(nargs, args, self);
5813
+ }
5814
+ }
5815
+ }
5816
+ }
5817
+ }
5818
+
5819
+ fail:
5820
+ Ruby_Format_OverloadedError( argc, 5, "Font.set_image",
5821
+ " void Font.set_image(std::string codepoint, unsigned int font_flags, Gosu::Image const &image)\n"
5822
+ " void Font.set_image(std::string codepoint, Gosu::Image const &image)\n");
5823
+
5824
+ return Qnil;
5825
+ }
5826
+
5827
+
5705
5828
  SWIGINTERN VALUE
5706
5829
  _wrap_new_Font__SWIG_0(int argc, VALUE *argv, VALUE self) {
5707
5830
  Gosu::Window *arg1 = 0 ;
5708
5831
  std::string *arg2 = 0 ;
5709
- unsigned int arg3 ;
5832
+ int arg3 ;
5710
5833
  void *argp1 = 0 ;
5711
5834
  int res1 = 0 ;
5712
5835
  int res2 = SWIG_OLDOBJ ;
5713
- unsigned int val3 ;
5836
+ int val3 ;
5714
5837
  int ecode3 = 0 ;
5715
5838
  const char *classname SWIGUNUSED = "Gosu::Font";
5716
5839
  Gosu::Font *result = 0 ;
@@ -5737,11 +5860,11 @@ _wrap_new_Font__SWIG_0(int argc, VALUE *argv, VALUE self) {
5737
5860
  }
5738
5861
  arg2 = ptr;
5739
5862
  }
5740
- ecode3 = SWIG_AsVal_unsigned_SS_int(argv[2], &val3);
5863
+ ecode3 = SWIG_AsVal_int(argv[2], &val3);
5741
5864
  if (!SWIG_IsOK(ecode3)) {
5742
- SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "unsigned int","Font", 3, argv[2] ));
5865
+ SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","Font", 3, argv[2] ));
5743
5866
  }
5744
- arg3 = static_cast< unsigned int >(val3);
5867
+ arg3 = static_cast< int >(val3);
5745
5868
  {
5746
5869
  try {
5747
5870
  result = (Gosu::Font *)new_Gosu_Font__SWIG_0(*arg1,(std::string const &)*arg2,arg3);
@@ -5777,9 +5900,9 @@ _wrap_Font_allocate(int argc, VALUE *argv, VALUE self)
5777
5900
 
5778
5901
  SWIGINTERN VALUE
5779
5902
  _wrap_new_Font__SWIG_1(int argc, VALUE *argv, VALUE self) {
5780
- unsigned int arg1 ;
5903
+ int arg1 ;
5781
5904
  VALUE arg2 = (VALUE) 0 ;
5782
- unsigned int val1 ;
5905
+ int val1 ;
5783
5906
  int ecode1 = 0 ;
5784
5907
  const char *classname SWIGUNUSED = "Gosu::Font";
5785
5908
  Gosu::Font *result = 0 ;
@@ -5787,11 +5910,11 @@ _wrap_new_Font__SWIG_1(int argc, VALUE *argv, VALUE self) {
5787
5910
  if ((argc < 1) || (argc > 2)) {
5788
5911
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
5789
5912
  }
5790
- ecode1 = SWIG_AsVal_unsigned_SS_int(argv[0], &val1);
5913
+ ecode1 = SWIG_AsVal_int(argv[0], &val1);
5791
5914
  if (!SWIG_IsOK(ecode1)) {
5792
- SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "unsigned int","Font", 1, argv[0] ));
5915
+ SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int","Font", 1, argv[0] ));
5793
5916
  }
5794
- arg1 = static_cast< unsigned int >(val1);
5917
+ arg1 = static_cast< int >(val1);
5795
5918
  if (argc > 1) {
5796
5919
  arg2 = argv[1];
5797
5920
  }
@@ -5824,7 +5947,7 @@ SWIGINTERN VALUE _wrap_new_Font(int nargs, VALUE *args, VALUE self) {
5824
5947
  if ((argc >= 1) && (argc <= 2)) {
5825
5948
  int _v;
5826
5949
  {
5827
- int res = SWIG_AsVal_unsigned_SS_int(argv[0], NULL);
5950
+ int res = SWIG_AsVal_int(argv[0], NULL);
5828
5951
  _v = SWIG_CheckState(res);
5829
5952
  }
5830
5953
  if (_v) {
@@ -5847,7 +5970,7 @@ SWIGINTERN VALUE _wrap_new_Font(int nargs, VALUE *args, VALUE self) {
5847
5970
  _v = SWIG_CheckState(res);
5848
5971
  if (_v) {
5849
5972
  {
5850
- int res = SWIG_AsVal_unsigned_SS_int(argv[2], NULL);
5973
+ int res = SWIG_AsVal_int(argv[2], NULL);
5851
5974
  _v = SWIG_CheckState(res);
5852
5975
  }
5853
5976
  if (_v) {
@@ -5859,55 +5982,13 @@ SWIGINTERN VALUE _wrap_new_Font(int nargs, VALUE *args, VALUE self) {
5859
5982
 
5860
5983
  fail:
5861
5984
  Ruby_Format_OverloadedError( argc, 3, "Font.new",
5862
- " Font.new(Gosu::Window &window, std::string const &font_name, unsigned int height)\n"
5863
- " Font.new(unsigned int height, VALUE options)\n");
5985
+ " Font.new(Gosu::Window &window, std::string const &font_name, int height)\n"
5986
+ " Font.new(int height, VALUE options)\n");
5864
5987
 
5865
5988
  return Qnil;
5866
5989
  }
5867
5990
 
5868
5991
 
5869
- SWIGINTERN VALUE
5870
- _wrap_Font_set_image(int argc, VALUE *argv, VALUE self) {
5871
- Gosu::Font *arg1 = (Gosu::Font *) 0 ;
5872
- wchar_t arg2 ;
5873
- VALUE arg3 = (VALUE) 0 ;
5874
- void *argp1 = 0 ;
5875
- int res1 = 0 ;
5876
-
5877
- if ((argc < 2) || (argc > 2)) {
5878
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
5879
- }
5880
- res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Gosu__Font, 0 | 0 );
5881
- if (!SWIG_IsOK(res1)) {
5882
- SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::Font *","set_image", 1, self ));
5883
- }
5884
- arg1 = reinterpret_cast< Gosu::Font * >(argp1);
5885
- {
5886
- VALUE ruby_string = rb_obj_as_string(argv[0]);
5887
- char* utf8_string = StringValueCStr(ruby_string);
5888
- std::wstring ucs_string = Gosu::utf8_to_wstring(utf8_string);
5889
- if (ucs_string.length() != 1) {
5890
- rb_raise(rb_eArgError,
5891
- "A single-character string was expected, but `%s' given",
5892
- utf8_string);
5893
- }
5894
- arg2 = ucs_string[0];
5895
- }
5896
- arg3 = argv[1];
5897
- {
5898
- try {
5899
- Gosu_Font_set_image(arg1,arg2,arg3);
5900
- }
5901
- catch (const std::exception& e) {
5902
- SWIG_exception(SWIG_RuntimeError, e.what());
5903
- }
5904
- }
5905
- return Qnil;
5906
- fail:
5907
- return Qnil;
5908
- }
5909
-
5910
-
5911
5992
  SWIGINTERN void
5912
5993
  free_Gosu_Font(void *self) {
5913
5994
  Gosu::Font *arg1 = (Gosu::Font *)self;
@@ -5973,10 +6054,10 @@ fail:
5973
6054
  SWIGINTERN VALUE
5974
6055
  _wrap_GLTexInfo_left_set(int argc, VALUE *argv, VALUE self) {
5975
6056
  Gosu::GLTexInfo *arg1 = (Gosu::GLTexInfo *) 0 ;
5976
- float arg2 ;
6057
+ double arg2 ;
5977
6058
  void *argp1 = 0 ;
5978
6059
  int res1 = 0 ;
5979
- float val2 ;
6060
+ double val2 ;
5980
6061
  int ecode2 = 0 ;
5981
6062
 
5982
6063
  if ((argc < 1) || (argc > 1)) {
@@ -5987,11 +6068,11 @@ _wrap_GLTexInfo_left_set(int argc, VALUE *argv, VALUE self) {
5987
6068
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::GLTexInfo *","left", 1, self ));
5988
6069
  }
5989
6070
  arg1 = reinterpret_cast< Gosu::GLTexInfo * >(argp1);
5990
- ecode2 = SWIG_AsVal_float(argv[0], &val2);
6071
+ ecode2 = SWIG_AsVal_double(argv[0], &val2);
5991
6072
  if (!SWIG_IsOK(ecode2)) {
5992
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","left", 2, argv[0] ));
6073
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","left", 2, argv[0] ));
5993
6074
  }
5994
- arg2 = static_cast< float >(val2);
6075
+ arg2 = static_cast< double >(val2);
5995
6076
  if (arg1) (arg1)->left = arg2;
5996
6077
  return Qnil;
5997
6078
  fail:
@@ -6004,7 +6085,7 @@ _wrap_GLTexInfo_left_get(int argc, VALUE *argv, VALUE self) {
6004
6085
  Gosu::GLTexInfo *arg1 = (Gosu::GLTexInfo *) 0 ;
6005
6086
  void *argp1 = 0 ;
6006
6087
  int res1 = 0 ;
6007
- float result;
6088
+ double result;
6008
6089
  VALUE vresult = Qnil;
6009
6090
 
6010
6091
  if ((argc < 0) || (argc > 0)) {
@@ -6015,8 +6096,8 @@ _wrap_GLTexInfo_left_get(int argc, VALUE *argv, VALUE self) {
6015
6096
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::GLTexInfo *","left", 1, self ));
6016
6097
  }
6017
6098
  arg1 = reinterpret_cast< Gosu::GLTexInfo * >(argp1);
6018
- result = (float) ((arg1)->left);
6019
- vresult = SWIG_From_float(static_cast< float >(result));
6099
+ result = (double) ((arg1)->left);
6100
+ vresult = SWIG_From_double(static_cast< double >(result));
6020
6101
  return vresult;
6021
6102
  fail:
6022
6103
  return Qnil;
@@ -6026,10 +6107,10 @@ fail:
6026
6107
  SWIGINTERN VALUE
6027
6108
  _wrap_GLTexInfo_right_set(int argc, VALUE *argv, VALUE self) {
6028
6109
  Gosu::GLTexInfo *arg1 = (Gosu::GLTexInfo *) 0 ;
6029
- float arg2 ;
6110
+ double arg2 ;
6030
6111
  void *argp1 = 0 ;
6031
6112
  int res1 = 0 ;
6032
- float val2 ;
6113
+ double val2 ;
6033
6114
  int ecode2 = 0 ;
6034
6115
 
6035
6116
  if ((argc < 1) || (argc > 1)) {
@@ -6040,11 +6121,11 @@ _wrap_GLTexInfo_right_set(int argc, VALUE *argv, VALUE self) {
6040
6121
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::GLTexInfo *","right", 1, self ));
6041
6122
  }
6042
6123
  arg1 = reinterpret_cast< Gosu::GLTexInfo * >(argp1);
6043
- ecode2 = SWIG_AsVal_float(argv[0], &val2);
6124
+ ecode2 = SWIG_AsVal_double(argv[0], &val2);
6044
6125
  if (!SWIG_IsOK(ecode2)) {
6045
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","right", 2, argv[0] ));
6126
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","right", 2, argv[0] ));
6046
6127
  }
6047
- arg2 = static_cast< float >(val2);
6128
+ arg2 = static_cast< double >(val2);
6048
6129
  if (arg1) (arg1)->right = arg2;
6049
6130
  return Qnil;
6050
6131
  fail:
@@ -6057,7 +6138,7 @@ _wrap_GLTexInfo_right_get(int argc, VALUE *argv, VALUE self) {
6057
6138
  Gosu::GLTexInfo *arg1 = (Gosu::GLTexInfo *) 0 ;
6058
6139
  void *argp1 = 0 ;
6059
6140
  int res1 = 0 ;
6060
- float result;
6141
+ double result;
6061
6142
  VALUE vresult = Qnil;
6062
6143
 
6063
6144
  if ((argc < 0) || (argc > 0)) {
@@ -6068,8 +6149,8 @@ _wrap_GLTexInfo_right_get(int argc, VALUE *argv, VALUE self) {
6068
6149
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::GLTexInfo *","right", 1, self ));
6069
6150
  }
6070
6151
  arg1 = reinterpret_cast< Gosu::GLTexInfo * >(argp1);
6071
- result = (float) ((arg1)->right);
6072
- vresult = SWIG_From_float(static_cast< float >(result));
6152
+ result = (double) ((arg1)->right);
6153
+ vresult = SWIG_From_double(static_cast< double >(result));
6073
6154
  return vresult;
6074
6155
  fail:
6075
6156
  return Qnil;
@@ -6079,10 +6160,10 @@ fail:
6079
6160
  SWIGINTERN VALUE
6080
6161
  _wrap_GLTexInfo_top_set(int argc, VALUE *argv, VALUE self) {
6081
6162
  Gosu::GLTexInfo *arg1 = (Gosu::GLTexInfo *) 0 ;
6082
- float arg2 ;
6163
+ double arg2 ;
6083
6164
  void *argp1 = 0 ;
6084
6165
  int res1 = 0 ;
6085
- float val2 ;
6166
+ double val2 ;
6086
6167
  int ecode2 = 0 ;
6087
6168
 
6088
6169
  if ((argc < 1) || (argc > 1)) {
@@ -6093,11 +6174,11 @@ _wrap_GLTexInfo_top_set(int argc, VALUE *argv, VALUE self) {
6093
6174
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::GLTexInfo *","top", 1, self ));
6094
6175
  }
6095
6176
  arg1 = reinterpret_cast< Gosu::GLTexInfo * >(argp1);
6096
- ecode2 = SWIG_AsVal_float(argv[0], &val2);
6177
+ ecode2 = SWIG_AsVal_double(argv[0], &val2);
6097
6178
  if (!SWIG_IsOK(ecode2)) {
6098
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","top", 2, argv[0] ));
6179
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","top", 2, argv[0] ));
6099
6180
  }
6100
- arg2 = static_cast< float >(val2);
6181
+ arg2 = static_cast< double >(val2);
6101
6182
  if (arg1) (arg1)->top = arg2;
6102
6183
  return Qnil;
6103
6184
  fail:
@@ -6110,7 +6191,7 @@ _wrap_GLTexInfo_top_get(int argc, VALUE *argv, VALUE self) {
6110
6191
  Gosu::GLTexInfo *arg1 = (Gosu::GLTexInfo *) 0 ;
6111
6192
  void *argp1 = 0 ;
6112
6193
  int res1 = 0 ;
6113
- float result;
6194
+ double result;
6114
6195
  VALUE vresult = Qnil;
6115
6196
 
6116
6197
  if ((argc < 0) || (argc > 0)) {
@@ -6121,8 +6202,8 @@ _wrap_GLTexInfo_top_get(int argc, VALUE *argv, VALUE self) {
6121
6202
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::GLTexInfo *","top", 1, self ));
6122
6203
  }
6123
6204
  arg1 = reinterpret_cast< Gosu::GLTexInfo * >(argp1);
6124
- result = (float) ((arg1)->top);
6125
- vresult = SWIG_From_float(static_cast< float >(result));
6205
+ result = (double) ((arg1)->top);
6206
+ vresult = SWIG_From_double(static_cast< double >(result));
6126
6207
  return vresult;
6127
6208
  fail:
6128
6209
  return Qnil;
@@ -6132,10 +6213,10 @@ fail:
6132
6213
  SWIGINTERN VALUE
6133
6214
  _wrap_GLTexInfo_bottom_set(int argc, VALUE *argv, VALUE self) {
6134
6215
  Gosu::GLTexInfo *arg1 = (Gosu::GLTexInfo *) 0 ;
6135
- float arg2 ;
6216
+ double arg2 ;
6136
6217
  void *argp1 = 0 ;
6137
6218
  int res1 = 0 ;
6138
- float val2 ;
6219
+ double val2 ;
6139
6220
  int ecode2 = 0 ;
6140
6221
 
6141
6222
  if ((argc < 1) || (argc > 1)) {
@@ -6146,11 +6227,11 @@ _wrap_GLTexInfo_bottom_set(int argc, VALUE *argv, VALUE self) {
6146
6227
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::GLTexInfo *","bottom", 1, self ));
6147
6228
  }
6148
6229
  arg1 = reinterpret_cast< Gosu::GLTexInfo * >(argp1);
6149
- ecode2 = SWIG_AsVal_float(argv[0], &val2);
6230
+ ecode2 = SWIG_AsVal_double(argv[0], &val2);
6150
6231
  if (!SWIG_IsOK(ecode2)) {
6151
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","bottom", 2, argv[0] ));
6232
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","bottom", 2, argv[0] ));
6152
6233
  }
6153
- arg2 = static_cast< float >(val2);
6234
+ arg2 = static_cast< double >(val2);
6154
6235
  if (arg1) (arg1)->bottom = arg2;
6155
6236
  return Qnil;
6156
6237
  fail:
@@ -6163,7 +6244,7 @@ _wrap_GLTexInfo_bottom_get(int argc, VALUE *argv, VALUE self) {
6163
6244
  Gosu::GLTexInfo *arg1 = (Gosu::GLTexInfo *) 0 ;
6164
6245
  void *argp1 = 0 ;
6165
6246
  int res1 = 0 ;
6166
- float result;
6247
+ double result;
6167
6248
  VALUE vresult = Qnil;
6168
6249
 
6169
6250
  if ((argc < 0) || (argc > 0)) {
@@ -6174,8 +6255,8 @@ _wrap_GLTexInfo_bottom_get(int argc, VALUE *argv, VALUE self) {
6174
6255
  SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::GLTexInfo *","bottom", 1, self ));
6175
6256
  }
6176
6257
  arg1 = reinterpret_cast< Gosu::GLTexInfo * >(argp1);
6177
- result = (float) ((arg1)->bottom);
6178
- vresult = SWIG_From_float(static_cast< float >(result));
6258
+ result = (double) ((arg1)->bottom);
6259
+ vresult = SWIG_From_double(static_cast< double >(result));
6179
6260
  return vresult;
6180
6261
  fail:
6181
6262
  return Qnil;
@@ -7048,10 +7129,10 @@ fail:
7048
7129
  SWIGINTERN VALUE
7049
7130
  _wrap_Image_from_text(int argc, VALUE *argv, VALUE self) {
7050
7131
  std::string *arg1 = 0 ;
7051
- unsigned int arg2 ;
7132
+ int arg2 ;
7052
7133
  VALUE arg3 = (VALUE) 0 ;
7053
7134
  int res1 = SWIG_OLDOBJ ;
7054
- unsigned int val2 ;
7135
+ int val2 ;
7055
7136
  int ecode2 = 0 ;
7056
7137
  Gosu::Image *result = 0 ;
7057
7138
  VALUE vresult = Qnil;
@@ -7070,11 +7151,11 @@ _wrap_Image_from_text(int argc, VALUE *argv, VALUE self) {
7070
7151
  }
7071
7152
  arg1 = ptr;
7072
7153
  }
7073
- ecode2 = SWIG_AsVal_unsigned_SS_int(argv[1], &val2);
7154
+ ecode2 = SWIG_AsVal_int(argv[1], &val2);
7074
7155
  if (!SWIG_IsOK(ecode2)) {
7075
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned int","Gosu_Image_from_text", 2, argv[1] ));
7156
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","Gosu_Image_from_text", 2, argv[1] ));
7076
7157
  }
7077
- arg2 = static_cast< unsigned int >(val2);
7158
+ arg2 = static_cast< int >(val2);
7078
7159
  if (argc > 2) {
7079
7160
  arg3 = argv[2];
7080
7161
  }
@@ -7480,93 +7561,88 @@ fail:
7480
7561
  }
7481
7562
 
7482
7563
 
7483
- SWIGINTERN void
7484
- free_Gosu_Image(void *self) {
7485
- Gosu::Image *arg1 = (Gosu::Image *)self;
7486
- SWIG_RubyRemoveTracking(arg1);
7487
- delete arg1;
7488
- }
7489
7564
 
7565
+ /*
7566
+ Document-method: Gosu::Image.inspect
7567
+
7568
+ call-seq:
7569
+ inspect(max_width=80) -> std::string
7570
+
7571
+ Inspect class and its contents.
7572
+ */
7490
7573
  SWIGINTERN VALUE
7491
- _wrap_fps(int argc, VALUE *argv, VALUE self) {
7492
- int result;
7574
+ _wrap_Image_inspect(int argc, VALUE *argv, VALUE self) {
7575
+ Gosu::Image *arg1 = (Gosu::Image *) 0 ;
7576
+ int arg2 = (int) 80 ;
7577
+ void *argp1 = 0 ;
7578
+ int res1 = 0 ;
7579
+ int val2 ;
7580
+ int ecode2 = 0 ;
7581
+ std::string result;
7493
7582
  VALUE vresult = Qnil;
7494
7583
 
7495
- if ((argc < 0) || (argc > 0)) {
7584
+ if ((argc < 0) || (argc > 1)) {
7496
7585
  rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
7497
7586
  }
7587
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Gosu__Image, 0 | 0 );
7588
+ if (!SWIG_IsOK(res1)) {
7589
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::Image const *","inspect", 1, self ));
7590
+ }
7591
+ arg1 = reinterpret_cast< Gosu::Image * >(argp1);
7592
+ if (argc > 0) {
7593
+ ecode2 = SWIG_AsVal_int(argv[0], &val2);
7594
+ if (!SWIG_IsOK(ecode2)) {
7595
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","inspect", 2, argv[0] ));
7596
+ }
7597
+ arg2 = static_cast< int >(val2);
7598
+ }
7498
7599
  {
7499
7600
  try {
7500
- result = (int)Gosu::fps();
7601
+ result = Gosu_Image_inspect((Gosu::Image const *)arg1,arg2);
7501
7602
  }
7502
7603
  catch (const std::exception& e) {
7503
7604
  SWIG_exception(SWIG_RuntimeError, e.what());
7504
7605
  }
7505
7606
  }
7506
- vresult = SWIG_From_int(static_cast< int >(result));
7607
+ vresult = SWIG_From_std_string(static_cast< std::string >(result));
7507
7608
  return vresult;
7508
7609
  fail:
7509
7610
  return Qnil;
7510
7611
  }
7511
7612
 
7512
7613
 
7513
- static swig_class SwigClassChannel;
7514
-
7515
- SWIGINTERN VALUE
7516
- #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
7517
- _wrap_Channel_allocate(VALUE self)
7518
- #else
7519
- _wrap_Channel_allocate(int argc, VALUE *argv, VALUE self)
7520
- #endif
7521
- {
7522
- VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_Gosu__Channel);
7523
- #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
7524
- rb_obj_call_init(vresult, argc, argv);
7525
- #endif
7526
- return vresult;
7614
+ SWIGINTERN void
7615
+ free_Gosu_Image(void *self) {
7616
+ Gosu::Image *arg1 = (Gosu::Image *)self;
7617
+ SWIG_RubyRemoveTracking(arg1);
7618
+ delete arg1;
7527
7619
  }
7528
7620
 
7529
-
7530
7621
  SWIGINTERN VALUE
7531
- _wrap_new_Channel(int argc, VALUE *argv, VALUE self) {
7532
- int arg1 ;
7533
- int arg2 ;
7534
- int val1 ;
7535
- int ecode1 = 0 ;
7536
- int val2 ;
7537
- int ecode2 = 0 ;
7538
- const char *classname SWIGUNUSED = "Gosu::Channel";
7539
- Gosu::Channel *result = 0 ;
7622
+ _wrap_fps(int argc, VALUE *argv, VALUE self) {
7623
+ int result;
7624
+ VALUE vresult = Qnil;
7540
7625
 
7541
- if ((argc < 2) || (argc > 2)) {
7542
- rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
7626
+ if ((argc < 0) || (argc > 0)) {
7627
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
7543
7628
  }
7544
- ecode1 = SWIG_AsVal_int(argv[0], &val1);
7545
- if (!SWIG_IsOK(ecode1)) {
7546
- SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int","Channel", 1, argv[0] ));
7547
- }
7548
- arg1 = static_cast< int >(val1);
7549
- ecode2 = SWIG_AsVal_int(argv[1], &val2);
7550
- if (!SWIG_IsOK(ecode2)) {
7551
- SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","Channel", 2, argv[1] ));
7552
- }
7553
- arg2 = static_cast< int >(val2);
7554
7629
  {
7555
7630
  try {
7556
- result = (Gosu::Channel *)new Gosu::Channel(arg1,arg2);
7557
- DATA_PTR(self) = result;
7558
- SWIG_RubyAddTracking(result, self);
7631
+ result = (int)Gosu::fps();
7559
7632
  }
7560
7633
  catch (const std::exception& e) {
7561
7634
  SWIG_exception(SWIG_RuntimeError, e.what());
7562
7635
  }
7563
7636
  }
7564
- return self;
7637
+ vresult = SWIG_From_int(static_cast< int >(result));
7638
+ return vresult;
7565
7639
  fail:
7566
7640
  return Qnil;
7567
7641
  }
7568
7642
 
7569
7643
 
7644
+ static swig_class SwigClassChannel;
7645
+
7570
7646
  SWIGINTERN VALUE
7571
7647
  _wrap_Channel_current_channel(int argc, VALUE *argv, VALUE self) {
7572
7648
  Gosu::Channel *arg1 = (Gosu::Channel *) 0 ;
@@ -7929,7 +8005,7 @@ _wrap_Sample_play(int argc, VALUE *argv, VALUE self) {
7929
8005
  int ecode3 = 0 ;
7930
8006
  bool val4 ;
7931
8007
  int ecode4 = 0 ;
7932
- SwigValueWrapper< Gosu::Channel > result;
8008
+ Gosu::Channel result;
7933
8009
  VALUE vresult = Qnil;
7934
8010
 
7935
8011
  if ((argc < 0) || (argc > 3)) {
@@ -7993,7 +8069,7 @@ _wrap_Sample_play_pan(int argc, VALUE *argv, VALUE self) {
7993
8069
  int ecode4 = 0 ;
7994
8070
  bool val5 ;
7995
8071
  int ecode5 = 0 ;
7996
- SwigValueWrapper< Gosu::Channel > result;
8072
+ Gosu::Channel result;
7997
8073
  VALUE vresult = Qnil;
7998
8074
 
7999
8075
  if ((argc < 1) || (argc > 4)) {
@@ -8564,6 +8640,100 @@ fail:
8564
8640
  }
8565
8641
 
8566
8642
 
8643
+ SWIGINTERN VALUE
8644
+ _wrap_TextInput_insert_text(int argc, VALUE *argv, VALUE self) {
8645
+ Gosu::TextInput *arg1 = (Gosu::TextInput *) 0 ;
8646
+ std::string arg2 ;
8647
+ void *argp1 = 0 ;
8648
+ int res1 = 0 ;
8649
+
8650
+ if ((argc < 1) || (argc > 1)) {
8651
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
8652
+ }
8653
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Gosu__TextInput, 0 | 0 );
8654
+ if (!SWIG_IsOK(res1)) {
8655
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::TextInput *","insert_text", 1, self ));
8656
+ }
8657
+ arg1 = reinterpret_cast< Gosu::TextInput * >(argp1);
8658
+ {
8659
+ std::string *ptr = (std::string *)0;
8660
+ int res = SWIG_AsPtr_std_string(argv[0], &ptr);
8661
+ if (!SWIG_IsOK(res) || !ptr) {
8662
+ SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), Ruby_Format_TypeError( "", "std::string","insert_text", 2, argv[0] ));
8663
+ }
8664
+ arg2 = *ptr;
8665
+ if (SWIG_IsNewObj(res)) delete ptr;
8666
+ }
8667
+ {
8668
+ try {
8669
+ (arg1)->insert_text(arg2);
8670
+ }
8671
+ catch (const std::exception& e) {
8672
+ SWIG_exception(SWIG_RuntimeError, e.what());
8673
+ }
8674
+ }
8675
+ return Qnil;
8676
+ fail:
8677
+ return Qnil;
8678
+ }
8679
+
8680
+
8681
+ SWIGINTERN VALUE
8682
+ _wrap_TextInput_delete_forward(int argc, VALUE *argv, VALUE self) {
8683
+ Gosu::TextInput *arg1 = (Gosu::TextInput *) 0 ;
8684
+ void *argp1 = 0 ;
8685
+ int res1 = 0 ;
8686
+
8687
+ if ((argc < 0) || (argc > 0)) {
8688
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
8689
+ }
8690
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Gosu__TextInput, 0 | 0 );
8691
+ if (!SWIG_IsOK(res1)) {
8692
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::TextInput *","delete_forward", 1, self ));
8693
+ }
8694
+ arg1 = reinterpret_cast< Gosu::TextInput * >(argp1);
8695
+ {
8696
+ try {
8697
+ (arg1)->delete_forward();
8698
+ }
8699
+ catch (const std::exception& e) {
8700
+ SWIG_exception(SWIG_RuntimeError, e.what());
8701
+ }
8702
+ }
8703
+ return Qnil;
8704
+ fail:
8705
+ return Qnil;
8706
+ }
8707
+
8708
+
8709
+ SWIGINTERN VALUE
8710
+ _wrap_TextInput_delete_backward(int argc, VALUE *argv, VALUE self) {
8711
+ Gosu::TextInput *arg1 = (Gosu::TextInput *) 0 ;
8712
+ void *argp1 = 0 ;
8713
+ int res1 = 0 ;
8714
+
8715
+ if ((argc < 0) || (argc > 0)) {
8716
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
8717
+ }
8718
+ res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_Gosu__TextInput, 0 | 0 );
8719
+ if (!SWIG_IsOK(res1)) {
8720
+ SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "Gosu::TextInput *","delete_backward", 1, self ));
8721
+ }
8722
+ arg1 = reinterpret_cast< Gosu::TextInput * >(argp1);
8723
+ {
8724
+ try {
8725
+ (arg1)->delete_backward();
8726
+ }
8727
+ catch (const std::exception& e) {
8728
+ SWIG_exception(SWIG_RuntimeError, e.what());
8729
+ }
8730
+ }
8731
+ return Qnil;
8732
+ fail:
8733
+ return Qnil;
8734
+ }
8735
+
8736
+
8567
8737
  SWIGINTERN VALUE
8568
8738
  _wrap_TextInput_caret_pos(int argc, VALUE *argv, VALUE self) {
8569
8739
  Gosu::TextInput *arg1 = (Gosu::TextInput *) 0 ;
@@ -10910,6 +11080,45 @@ fail:
10910
11080
  }
10911
11081
 
10912
11082
 
11083
+ SWIGINTERN VALUE
11084
+ _wrap_render(int argc, VALUE *argv, VALUE self) {
11085
+ int arg1 ;
11086
+ int arg2 ;
11087
+ int val1 ;
11088
+ int ecode1 = 0 ;
11089
+ int val2 ;
11090
+ int ecode2 = 0 ;
11091
+ Gosu::Image *result = 0 ;
11092
+ VALUE vresult = Qnil;
11093
+
11094
+ if ((argc < 2) || (argc > 2)) {
11095
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
11096
+ }
11097
+ ecode1 = SWIG_AsVal_int(argv[0], &val1);
11098
+ if (!SWIG_IsOK(ecode1)) {
11099
+ SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "int","Gosu::render", 1, argv[0] ));
11100
+ }
11101
+ arg1 = static_cast< int >(val1);
11102
+ ecode2 = SWIG_AsVal_int(argv[1], &val2);
11103
+ if (!SWIG_IsOK(ecode2)) {
11104
+ SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","Gosu::render", 2, argv[1] ));
11105
+ }
11106
+ arg2 = static_cast< int >(val2);
11107
+ {
11108
+ try {
11109
+ result = (Gosu::Image *)Gosu::render(arg1,arg2);
11110
+ }
11111
+ catch (const std::exception& e) {
11112
+ SWIG_exception(SWIG_RuntimeError, e.what());
11113
+ }
11114
+ }
11115
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Gosu__Image, 0 | 0 );
11116
+ return vresult;
11117
+ fail:
11118
+ return Qnil;
11119
+ }
11120
+
11121
+
10913
11122
  SWIGINTERN VALUE
10914
11123
  _wrap_transform(int argc, VALUE *argv, VALUE self) {
10915
11124
  double arg1 ;
@@ -11760,6 +11969,7 @@ SWIGEXPORT void Init_gosu(void) {
11760
11969
  rb_define_method(SwigClassImage.klass, "rows", VALUEFUNC(_wrap_Image_rows), -1);
11761
11970
  rb_define_method(SwigClassImage.klass, "save", VALUEFUNC(_wrap_Image_save), -1);
11762
11971
  rb_define_method(SwigClassImage.klass, "insert", VALUEFUNC(_wrap_Image_insert), -1);
11972
+ rb_define_method(SwigClassImage.klass, "inspect", VALUEFUNC(_wrap_Image_inspect), -1);
11763
11973
  SwigClassImage.mark = 0;
11764
11974
  SwigClassImage.destroy = (void (*)(void *)) free_Gosu_Image;
11765
11975
  SwigClassImage.trackObjects = 1;
@@ -11767,8 +11977,7 @@ SWIGEXPORT void Init_gosu(void) {
11767
11977
 
11768
11978
  SwigClassChannel.klass = rb_define_class_under(mGosu, "Channel", rb_cObject);
11769
11979
  SWIG_TypeClientData(SWIGTYPE_p_Gosu__Channel, (void *) &SwigClassChannel);
11770
- rb_define_alloc_func(SwigClassChannel.klass, _wrap_Channel_allocate);
11771
- rb_define_method(SwigClassChannel.klass, "initialize", VALUEFUNC(_wrap_new_Channel), -1);
11980
+ rb_undef_alloc_func(SwigClassChannel.klass);
11772
11981
  rb_define_method(SwigClassChannel.klass, "current_channel", VALUEFUNC(_wrap_Channel_current_channel), -1);
11773
11982
  rb_define_method(SwigClassChannel.klass, "playing?", VALUEFUNC(_wrap_Channel_playingq___), -1);
11774
11983
  rb_define_method(SwigClassChannel.klass, "paused?", VALUEFUNC(_wrap_Channel_pausedq___), -1);
@@ -12033,6 +12242,9 @@ SWIGEXPORT void Init_gosu(void) {
12033
12242
  rb_define_method(SwigClassTextInput.klass, "text", VALUEFUNC(_wrap_TextInput_text), -1);
12034
12243
  rb_define_method(SwigClassTextInput.klass, "text=", VALUEFUNC(_wrap_TextInput_texte___), -1);
12035
12244
  rb_define_method(SwigClassTextInput.klass, "filter", VALUEFUNC(_wrap_TextInput_filter), -1);
12245
+ rb_define_method(SwigClassTextInput.klass, "insert_text", VALUEFUNC(_wrap_TextInput_insert_text), -1);
12246
+ rb_define_method(SwigClassTextInput.klass, "delete_forward", VALUEFUNC(_wrap_TextInput_delete_forward), -1);
12247
+ rb_define_method(SwigClassTextInput.klass, "delete_backward", VALUEFUNC(_wrap_TextInput_delete_backward), -1);
12036
12248
  rb_define_method(SwigClassTextInput.klass, "caret_pos", VALUEFUNC(_wrap_TextInput_caret_pos), -1);
12037
12249
  rb_define_method(SwigClassTextInput.klass, "caret_pos=", VALUEFUNC(_wrap_TextInput_caret_pose___), -1);
12038
12250
  rb_define_method(SwigClassTextInput.klass, "selection_start", VALUEFUNC(_wrap_TextInput_selection_start), -1);
@@ -12094,6 +12306,7 @@ SWIGEXPORT void Init_gosu(void) {
12094
12306
  rb_define_module_function(mGosu, "unsafe_gl", VALUEFUNC(_wrap_unsafe_gl), -1);
12095
12307
  rb_define_module_function(mGosu, "clip_to", VALUEFUNC(_wrap_clip_to), -1);
12096
12308
  rb_define_module_function(mGosu, "record", VALUEFUNC(_wrap_record), -1);
12309
+ rb_define_module_function(mGosu, "render", VALUEFUNC(_wrap_render), -1);
12097
12310
  rb_define_module_function(mGosu, "transform", VALUEFUNC(_wrap_transform), -1);
12098
12311
  rb_define_module_function(mGosu, "rotate", VALUEFUNC(_wrap_rotate), -1);
12099
12312
  rb_define_module_function(mGosu, "scale", VALUEFUNC(_wrap_scale), -1);