rubysdl 2.1.2 → 2.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/NEWS.en +8 -0
- data/NEWS.ja +8 -0
- data/README.en +22 -15
- data/README.ja +31 -20
- data/depend +2 -0
- data/doc-en/event.rsd +3 -0
- data/doc-en/time.rsd +1 -1
- data/doc-en/video.rsd +8 -8
- data/doc.txt +32 -0
- data/doc/event.rsd +5 -0
- data/doc/opengl.rsd +160 -0
- data/doc/rsd.rb +4 -3
- data/doc/time.rsd +1 -1
- data/doc/video.rsd +8 -8
- data/extconf.rb +30 -15
- data/lib/sdl.rb +2 -1
- data/lib/sdl1_compatible.rb +20 -0
- data/mkpkg.sh +28 -0
- data/rubysdl.gemspec +21 -0
- data/rubysdl.h +1 -0
- data/rubysdl_cdrom.c +0 -10
- data/rubysdl_event.c +30 -11
- data/rubysdl_event_key.c +0 -5
- data/rubysdl_image.c +2 -2
- data/rubysdl_joystick.c +0 -18
- data/rubysdl_kanji.c +0 -5
- data/rubysdl_main.c +0 -2
- data/rubysdl_mixer.c +2 -18
- data/rubysdl_mouse.c +0 -4
- data/rubysdl_rwops.c +4 -0
- data/rubysdl_sdlskk.c +0 -3
- data/rubysdl_sge_video.c +0 -14
- data/rubysdl_smpeg.c +0 -1
- data/rubysdl_time.c +0 -10
- data/rubysdl_ttf.c +0 -3
- data/rubysdl_video.c +2 -30
- data/rubysdl_wm.c +0 -5
- data/sample/caption.rb +21 -0
- data/sge/INSTALL +72 -0
- data/sge/LICENSE +504 -0
- data/sge/Makefile +83 -0
- data/sge/Makefile.conf +63 -0
- data/sge/README +219 -0
- data/sge/Todo +7 -0
- data/sge/WhatsNew +224 -0
- data/sge/sge.h +31 -0
- data/sge/sge_blib.cpp +1939 -0
- data/sge/sge_blib.h +68 -0
- data/sge/sge_bm_text.cpp +451 -0
- data/sge/sge_bm_text.h +71 -0
- data/sge/sge_collision.cpp +388 -0
- data/sge/sge_collision.h +54 -0
- data/sge/sge_config.h +6 -0
- data/sge/sge_internal.h +152 -0
- data/sge/sge_misc.cpp +92 -0
- data/sge/sge_misc.h +37 -0
- data/sge/sge_primitives.cpp +2516 -0
- data/sge/sge_primitives.h +111 -0
- data/sge/sge_rotation.cpp +683 -0
- data/sge/sge_rotation.h +46 -0
- data/sge/sge_shape.cpp +762 -0
- data/sge/sge_shape.h +365 -0
- data/sge/sge_surface.cpp +1090 -0
- data/sge/sge_surface.h +100 -0
- data/sge/sge_textpp.cpp +785 -0
- data/sge/sge_textpp.h +270 -0
- data/sge/sge_tt_text.cpp +1456 -0
- data/sge/sge_tt_text.h +114 -0
- data/utils/buildtest.sh +29 -0
- data/win32/README.en.win32 +72 -0
- data/win32/README.ja.win32 +80 -0
- data/win32/install_rubysdl.rb +30 -0
- data/win32/mkpkg.sh +72 -0
- metadata +136 -113
- data/rubysdl_ref.en.html +0 -5879
- data/rubysdl_ref.en.rd +0 -6601
- data/rubysdl_ref.html +0 -6194
- data/rubysdl_ref.rd +0 -6950
    
        data/rubysdl_image.c
    CHANGED
    
    | @@ -25,7 +25,6 @@ static VALUE Surface_s_load(VALUE klass, VALUE filename) | |
| 25 25 | 
             
            {
         | 
| 26 26 | 
             
              SDL_Surface *surface;
         | 
| 27 27 |  | 
| 28 | 
            -
              rb_secure(4);
         | 
| 29 28 | 
             
              ExportFilenameStringValue(filename);
         | 
| 30 29 |  | 
| 31 30 | 
             
              surface = IMG_Load(RSTRING_PTR(filename));
         | 
| @@ -45,12 +44,13 @@ static VALUE Surface_s_loadFromIO(VALUE class,VALUE io) | |
| 45 44 | 
             
                rb_raise(eSDLError,"Couldn't load image from IO: %s",
         | 
| 46 45 | 
             
            	     SDL_GetError());
         | 
| 47 46 | 
             
              }
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              RB_GC_GUARD(guard);
         | 
| 48 49 | 
             
              return Surface_create(surface);
         | 
| 49 50 | 
             
            }
         | 
| 50 51 | 
             
            static VALUE Surface_s_loadFromString(VALUE class,VALUE str)
         | 
| 51 52 | 
             
            {
         | 
| 52 53 | 
             
              SDL_Surface *surface;
         | 
| 53 | 
            -
              rb_secure(4);
         | 
| 54 54 | 
             
              SafeStringValue(str);
         | 
| 55 55 |  | 
| 56 56 | 
             
              surface = IMG_Load_RW(SDL_RWFromConstMem(RSTRING_PTR(str),
         | 
    
        data/rubysdl_joystick.c
    CHANGED
    
    | @@ -70,7 +70,6 @@ static VALUE Joystick_s_alloc(VALUE klass) | |
| 70 70 | 
             
            static VALUE Joystick_initialize(VALUE self, VALUE index)
         | 
| 71 71 | 
             
            {
         | 
| 72 72 | 
             
              Joystick* joy = GetJoystick(self);
         | 
| 73 | 
            -
              rb_secure(4);
         | 
| 74 73 |  | 
| 75 74 | 
             
              joy->joystick = SDL_JoystickOpen(NUM2INT(index));
         | 
| 76 75 | 
             
              if( joy->joystick == NULL ){
         | 
| @@ -83,13 +82,11 @@ static VALUE Joystick_initialize(VALUE self, VALUE index) | |
| 83 82 | 
             
            /* class methods */
         | 
| 84 83 | 
             
            static VALUE Joystick_s_poll(VALUE klass)
         | 
| 85 84 | 
             
            {
         | 
| 86 | 
            -
              rb_secure(4);
         | 
| 87 85 | 
             
              return INT2BOOL(SDL_JoystickEventState(SDL_QUERY) == SDL_ENABLE);
         | 
| 88 86 | 
             
            }
         | 
| 89 87 |  | 
| 90 88 | 
             
            static VALUE Joystick_s_set_poll(VALUE klass, VALUE poll)
         | 
| 91 89 | 
             
            {
         | 
| 92 | 
            -
              rb_secure(4);
         | 
| 93 90 |  | 
| 94 91 | 
             
              if(RTEST(poll))
         | 
| 95 92 | 
             
                SDL_JoystickEventState(SDL_ENABLE);
         | 
| @@ -100,26 +97,22 @@ static VALUE Joystick_s_set_poll(VALUE klass, VALUE poll) | |
| 100 97 |  | 
| 101 98 | 
             
            static VALUE Joystick_s_num(VALUE klass)
         | 
| 102 99 | 
             
            {
         | 
| 103 | 
            -
              rb_secure(4);
         | 
| 104 100 | 
             
              return INT2FIX(SDL_NumJoysticks());
         | 
| 105 101 | 
             
            }
         | 
| 106 102 |  | 
| 107 103 | 
             
            static VALUE Joystick_s_indexName(VALUE klass, VALUE index)
         | 
| 108 104 | 
             
            {
         | 
| 109 | 
            -
              rb_secure(4);
         | 
| 110 105 | 
             
              return rb_str_new2(SDL_JoystickName(NUM2INT(index)));
         | 
| 111 106 | 
             
            }
         | 
| 112 107 |  | 
| 113 108 | 
             
            static VALUE Joystick_s_open_p(VALUE klass, VALUE index)
         | 
| 114 109 | 
             
            {
         | 
| 115 | 
            -
              rb_secure(4);
         | 
| 116 110 | 
             
              return INT2BOOL(SDL_JoystickOpened(NUM2INT(index)));
         | 
| 117 111 | 
             
            }
         | 
| 118 112 |  | 
| 119 113 | 
             
            static VALUE Joystick_s_open(VALUE klass, VALUE index)
         | 
| 120 114 | 
             
            {
         | 
| 121 115 | 
             
              VALUE newobj;
         | 
| 122 | 
            -
              rb_secure(4);
         | 
| 123 116 |  | 
| 124 117 | 
             
              newobj = Joystick_s_alloc(klass);
         | 
| 125 118 | 
             
              Joystick_initialize(newobj, index);
         | 
| @@ -128,7 +121,6 @@ static VALUE Joystick_s_open(VALUE klass, VALUE index) | |
| 128 121 |  | 
| 129 122 | 
             
            static VALUE Joystick_s_update(VALUE klass)
         | 
| 130 123 | 
             
            {
         | 
| 131 | 
            -
              rb_secure(4);
         | 
| 132 124 | 
             
              SDL_JoystickUpdate();
         | 
| 133 125 | 
             
              return Qnil;
         | 
| 134 126 | 
             
            }
         | 
| @@ -137,7 +129,6 @@ static VALUE Joystick_s_update(VALUE klass) | |
| 137 129 | 
             
            static VALUE Joystick_close(VALUE self)
         | 
| 138 130 | 
             
            {
         | 
| 139 131 | 
             
              Joystick* joy;
         | 
| 140 | 
            -
              rb_secure(4);
         | 
| 141 132 |  | 
| 142 133 | 
             
              joy = GetJoystick(self);
         | 
| 143 134 | 
             
              SDL_JoystickClose(joy->joystick);
         | 
| @@ -147,7 +138,6 @@ static VALUE Joystick_close(VALUE self) | |
| 147 138 | 
             
            static VALUE Joystick_index(VALUE self)
         | 
| 148 139 | 
             
            {
         | 
| 149 140 | 
             
              SDL_Joystick* joystick;
         | 
| 150 | 
            -
              rb_secure(4);
         | 
| 151 141 |  | 
| 152 142 | 
             
              joystick = Get_SDL_Joystick(self);
         | 
| 153 143 | 
             
              return INT2FIX(SDL_JoystickIndex(joystick));
         | 
| @@ -156,7 +146,6 @@ static VALUE Joystick_index(VALUE self) | |
| 156 146 | 
             
            static VALUE Joystick_numAxes(VALUE self)
         | 
| 157 147 | 
             
            {
         | 
| 158 148 | 
             
              SDL_Joystick* joystick;
         | 
| 159 | 
            -
              rb_secure(4);
         | 
| 160 149 |  | 
| 161 150 | 
             
              joystick = Get_SDL_Joystick(self);
         | 
| 162 151 | 
             
              return INT2FIX(SDL_JoystickNumAxes(joystick));
         | 
| @@ -165,7 +154,6 @@ static VALUE Joystick_numAxes(VALUE self) | |
| 165 154 | 
             
            static VALUE Joystick_numBalls(VALUE self)
         | 
| 166 155 | 
             
            {
         | 
| 167 156 | 
             
              SDL_Joystick *joystick;
         | 
| 168 | 
            -
              rb_secure(4);
         | 
| 169 157 |  | 
| 170 158 | 
             
              joystick = Get_SDL_Joystick(self);
         | 
| 171 159 | 
             
              return INT2FIX(SDL_JoystickNumBalls(joystick));
         | 
| @@ -174,7 +162,6 @@ static VALUE Joystick_numBalls(VALUE self) | |
| 174 162 | 
             
            static VALUE Joystick_numHats(VALUE self)
         | 
| 175 163 | 
             
            {
         | 
| 176 164 | 
             
              SDL_Joystick *joystick;
         | 
| 177 | 
            -
              rb_secure(4);
         | 
| 178 165 | 
             
              joystick = Get_SDL_Joystick(self);
         | 
| 179 166 | 
             
              return INT2FIX(SDL_JoystickNumHats(joystick));
         | 
| 180 167 | 
             
            }
         | 
| @@ -182,7 +169,6 @@ static VALUE Joystick_numHats(VALUE self) | |
| 182 169 | 
             
            static VALUE Joystick_numButtons(VALUE self)
         | 
| 183 170 | 
             
            {
         | 
| 184 171 | 
             
              SDL_Joystick *joystick;
         | 
| 185 | 
            -
              rb_secure(4);
         | 
| 186 172 |  | 
| 187 173 | 
             
              joystick = Get_SDL_Joystick(self);
         | 
| 188 174 | 
             
              return INT2FIX(SDL_JoystickNumButtons(joystick));
         | 
| @@ -191,7 +177,6 @@ static VALUE Joystick_numButtons(VALUE self) | |
| 191 177 | 
             
            static VALUE Joystick_getAxis(VALUE self, VALUE axis)
         | 
| 192 178 | 
             
            {
         | 
| 193 179 | 
             
              SDL_Joystick *joystick;
         | 
| 194 | 
            -
              rb_secure(4);
         | 
| 195 180 |  | 
| 196 181 | 
             
              joystick = Get_SDL_Joystick(self);
         | 
| 197 182 | 
             
              return INT2NUM(SDL_JoystickGetAxis(joystick, NUM2INT(axis)));
         | 
| @@ -200,7 +185,6 @@ static VALUE Joystick_getAxis(VALUE self, VALUE axis) | |
| 200 185 | 
             
            static VALUE Joystick_getHat(VALUE self, VALUE hat)
         | 
| 201 186 | 
             
            {
         | 
| 202 187 | 
             
              SDL_Joystick *joystick;
         | 
| 203 | 
            -
              rb_secure(4);
         | 
| 204 188 |  | 
| 205 189 | 
             
              joystick = Get_SDL_Joystick(self);
         | 
| 206 190 | 
             
              return UINT2NUM(SDL_JoystickGetHat(joystick, NUM2INT(hat)));
         | 
| @@ -209,7 +193,6 @@ static VALUE Joystick_getHat(VALUE self, VALUE hat) | |
| 209 193 | 
             
            static VALUE Joystick_getButton(VALUE self, VALUE button)
         | 
| 210 194 | 
             
            {
         | 
| 211 195 | 
             
              SDL_Joystick *joystick;
         | 
| 212 | 
            -
              rb_secure(4);
         | 
| 213 196 |  | 
| 214 197 | 
             
              joystick = Get_SDL_Joystick(self);
         | 
| 215 198 | 
             
              return INT2BOOL(SDL_JoystickGetButton(joystick, NUM2INT(button)));
         | 
| @@ -220,7 +203,6 @@ static VALUE Joystick_getBall(VALUE self, VALUE ball) | |
| 220 203 | 
             
              SDL_Joystick *joystick;
         | 
| 221 204 | 
             
              int dx,dy;
         | 
| 222 205 |  | 
| 223 | 
            -
              rb_secure(4);
         | 
| 224 206 |  | 
| 225 207 | 
             
              joystick = Get_SDL_Joystick(self);
         | 
| 226 208 | 
             
              if( SDL_JoystickGetBall(joystick, NUM2INT(ball), &dx, &dy) == -1 )
         | 
    
        data/rubysdl_kanji.c
    CHANGED
    
    | @@ -80,7 +80,6 @@ static VALUE Font_s_open(VALUE klass, VALUE filename, VALUE size) | |
| 80 80 | 
             
            {
         | 
| 81 81 | 
             
              Kanji_Font* font;
         | 
| 82 82 |  | 
| 83 | 
            -
              rb_secure(4);
         | 
| 84 83 | 
             
              ExportFilenameStringValue(filename);
         | 
| 85 84 |  | 
| 86 85 | 
             
              font = Kanji_OpenFont(RSTRING_PTR(filename), NUM2INT(size));
         | 
| @@ -92,7 +91,6 @@ static VALUE Font_close(VALUE self) | |
| 92 91 | 
             
            {
         | 
| 93 92 | 
             
              KFont* kfont;
         | 
| 94 93 |  | 
| 95 | 
            -
              rb_secure(4);
         | 
| 96 94 | 
             
              kfont = Get_KFont(self);
         | 
| 97 95 | 
             
              if (kfont->font)
         | 
| 98 96 | 
             
                Kanji_CloseFont(kfont->font);
         | 
| @@ -116,7 +114,6 @@ static VALUE Font_getCodingSystem(VALUE self) | |
| 116 114 |  | 
| 117 115 | 
             
            static VALUE Font_add(VALUE self, VALUE filename)
         | 
| 118 116 | 
             
            {
         | 
| 119 | 
            -
              rb_secure(4);
         | 
| 120 117 | 
             
              ExportFilenameStringValue(filename);
         | 
| 121 118 | 
             
              if(Kanji_AddFont(Get_Kanji_Font(self), RSTRING_PTR(filename)) == -1)
         | 
| 122 119 | 
             
                rb_raise(eSDLError, "Couldn't use font: %s", RSTRING_PTR(filename));
         | 
| @@ -126,7 +123,6 @@ static VALUE Font_add(VALUE self, VALUE filename) | |
| 126 123 | 
             
            static VALUE Font_textwidth(VALUE self, VALUE text)
         | 
| 127 124 | 
             
            {
         | 
| 128 125 | 
             
              Kanji_Font* font;
         | 
| 129 | 
            -
              rb_secure(4);
         | 
| 130 126 | 
             
              font = Get_Kanji_Font(self);
         | 
| 131 127 | 
             
              ExportStringValueToEnc(text, get_enc(font));
         | 
| 132 128 | 
             
              return INT2FIX(Kanji_FontWidth(font, RSTRING_PTR(text)));
         | 
| @@ -148,7 +144,6 @@ static void Font_put(VALUE self, VALUE surface, VALUE text, | |
| 148 144 | 
             
            {
         | 
| 149 145 | 
             
              SDL_Color color;
         | 
| 150 146 | 
             
              Kanji_Font* font;
         | 
| 151 | 
            -
              rb_secure(4);
         | 
| 152 147 | 
             
              font = Get_Kanji_Font(self);
         | 
| 153 148 | 
             
              ExportStringValueToEnc(text, get_enc(font));
         | 
| 154 149 | 
             
              color.r = NUM2INT(r);color.g = NUM2INT(g); color.b = NUM2INT(b);
         | 
    
        data/rubysdl_main.c
    CHANGED
    
    | @@ -23,7 +23,6 @@ | |
| 23 23 |  | 
| 24 24 | 
             
            static VALUE sdl_s_init(VALUE mod, VALUE flags)
         | 
| 25 25 | 
             
            {
         | 
| 26 | 
            -
              rb_secure(4);
         | 
| 27 26 | 
             
              if( SDL_Init(NUM2UINT(flags)) < 0 )
         | 
| 28 27 | 
             
                rb_raise(eSDLError, "Couldn't initialize SDL: %s", SDL_GetError());
         | 
| 29 28 | 
             
              return Qnil;
         | 
| @@ -43,7 +42,6 @@ static VALUE sdl_s_inited_system(VALUE mod, VALUE flags) | |
| 43 42 |  | 
| 44 43 | 
             
            static VALUE sdl_s_putenv(VALUE mod, VALUE var)
         | 
| 45 44 | 
             
            {
         | 
| 46 | 
            -
              rb_secure(4);
         | 
| 47 45 | 
             
              SafeStringValue(var);
         | 
| 48 46 |  | 
| 49 47 | 
             
              if( putenv(StringValueCStr(var)) < 0 ){
         | 
    
        data/rubysdl_mixer.c
    CHANGED
    
    | @@ -108,7 +108,6 @@ static VALUE Mixer_s_driverName(VALUE mod) | |
| 108 108 | 
             
            static VALUE Mixer_s_open(VALUE mod, VALUE frequency, VALUE format,
         | 
| 109 109 | 
             
            			   VALUE channels, VALUE chunksize)
         | 
| 110 110 | 
             
            {
         | 
| 111 | 
            -
              rb_secure(4);
         | 
| 112 111 |  | 
| 113 112 | 
             
              if(Mix_opened()){
         | 
| 114 113 | 
             
                rb_raise(eSDLError, "already initialize SDL::Mixer");
         | 
| @@ -123,7 +122,6 @@ static VALUE Mixer_s_open(VALUE mod, VALUE frequency, VALUE format, | |
| 123 122 |  | 
| 124 123 | 
             
            static VALUE Mixer_s_close(VALUE mod)
         | 
| 125 124 | 
             
            {
         | 
| 126 | 
            -
              rb_secure(4);
         | 
| 127 125 | 
             
              Mix_CloseAudio();
         | 
| 128 126 | 
             
              return Qnil;
         | 
| 129 127 | 
             
            }
         | 
| @@ -143,7 +141,6 @@ static VALUE Mixer_s_spec(VALUE mod) | |
| 143 141 |  | 
| 144 142 | 
             
            static VALUE Mixer_s_allocateChannels(VALUE mod, VALUE numchannels)
         | 
| 145 143 | 
             
            {
         | 
| 146 | 
            -
              rb_secure(4);
         | 
| 147 144 | 
             
              return INT2FIX( Mix_AllocateChannels(NUM2INT(numchannels)) );  
         | 
| 148 145 | 
             
            }
         | 
| 149 146 |  | 
| @@ -151,7 +148,6 @@ static VALUE Mixer_s_allocateChannels(VALUE mod, VALUE numchannels) | |
| 151 148 | 
             
            static VALUE Mixer_s_playChannel(VALUE mod, VALUE channel, VALUE wave, VALUE loops)
         | 
| 152 149 | 
             
            {
         | 
| 153 150 | 
             
              int play_channel;
         | 
| 154 | 
            -
              rb_secure(4);
         | 
| 155 151 |  | 
| 156 152 | 
             
              play_channel = Mix_PlayChannel(NUM2INT(channel),
         | 
| 157 153 | 
             
                                             Get_Mix_Chunk(wave),
         | 
| @@ -243,7 +239,6 @@ static VALUE Wave_s_load(VALUE class, VALUE filename) | |
| 243 239 | 
             
            {
         | 
| 244 240 | 
             
              Mix_Chunk *chunk;
         | 
| 245 241 |  | 
| 246 | 
            -
              rb_secure(4);
         | 
| 247 242 | 
             
              ExportFilenameStringValue(filename);
         | 
| 248 243 |  | 
| 249 244 | 
             
              chunk = Mix_LoadWAV(RSTRING_PTR(filename));
         | 
| @@ -268,7 +263,6 @@ static VALUE Wave_s_loadFromIO(VALUE class, VALUE io) | |
| 268 263 | 
             
            static VALUE Wave_s_loadFromString(VALUE class, VALUE str)
         | 
| 269 264 | 
             
            {
         | 
| 270 265 | 
             
              Mix_Chunk *wave;
         | 
| 271 | 
            -
              rb_secure(4);
         | 
| 272 266 | 
             
              SafeStringValue(str);
         | 
| 273 267 |  | 
| 274 268 | 
             
              wave = Mix_LoadWAV_RW(SDL_RWFromConstMem(RSTRING_PTR(str),
         | 
| @@ -285,7 +279,6 @@ static VALUE Wave_s_loadFromString(VALUE class, VALUE str) | |
| 285 279 | 
             
            /* Volume setting functions and methods : volume in 0..128 */
         | 
| 286 280 | 
             
            static VALUE Mixer_s_setVolume(VALUE mod, VALUE channel, VALUE volume)
         | 
| 287 281 | 
             
            {
         | 
| 288 | 
            -
              rb_secure(4);
         | 
| 289 282 | 
             
              return INT2FIX(Mix_Volume(NUM2INT(channel), NUM2INT(volume)));
         | 
| 290 283 | 
             
            }
         | 
| 291 284 |  | 
| @@ -297,28 +290,24 @@ static VALUE Wave_s_setVolume(VALUE self, VALUE volume) | |
| 297 290 | 
             
            /* Halt,Pause function */
         | 
| 298 291 | 
             
            static VALUE Mixer_s_halt(VALUE mod, VALUE channel)
         | 
| 299 292 | 
             
            {
         | 
| 300 | 
            -
              rb_secure(4);
         | 
| 301 293 | 
             
              Mix_HaltChannel(NUM2INT(channel));
         | 
| 302 294 | 
             
              return Qnil;
         | 
| 303 295 | 
             
            }
         | 
| 304 296 |  | 
| 305 297 | 
             
            static VALUE Mixer_s_pause(VALUE mod, VALUE channel)
         | 
| 306 298 | 
             
            {
         | 
| 307 | 
            -
              rb_secure(4);
         | 
| 308 299 | 
             
              Mix_Pause(NUM2INT(channel));
         | 
| 309 300 | 
             
              return Qnil;
         | 
| 310 301 | 
             
            }
         | 
| 311 302 |  | 
| 312 303 | 
             
            static VALUE Mixer_s_resume(VALUE mod, VALUE channel)
         | 
| 313 304 | 
             
            {
         | 
| 314 | 
            -
              rb_secure(4);
         | 
| 315 305 | 
             
              Mix_Resume(NUM2INT(channel));
         | 
| 316 306 | 
             
              return Qnil;
         | 
| 317 307 | 
             
            }
         | 
| 318 308 |  | 
| 319 309 | 
             
            static VALUE Mixer_s_pause_p(VALUE mod, VALUE channel)
         | 
| 320 310 | 
             
            {
         | 
| 321 | 
            -
              rb_secure(4);
         | 
| 322 311 | 
             
              return INT2FIX(Mix_Paused(NUM2INT(channel)));
         | 
| 323 312 | 
             
            }
         | 
| 324 313 | 
             
            static VALUE Mixer_s_fadeOut(VALUE mod, VALUE channel, VALUE ms)
         | 
| @@ -340,14 +329,12 @@ static VALUE Mixer_s_fading(VALUE mod, VALUE which) | |
| 340 329 | 
             
            #define MakeSimpleRubyFunc(rubyFunc, sdlFunc) \
         | 
| 341 330 | 
             
            static VALUE rubyFunc(VALUE mod) \
         | 
| 342 331 | 
             
            { \
         | 
| 343 | 
            -
              rb_secure(4); \
         | 
| 344 332 | 
             
              sdlFunc(); \
         | 
| 345 333 | 
             
              return Qnil; \
         | 
| 346 334 | 
             
            } \
         | 
| 347 335 |  | 
| 348 336 | 
             
            static VALUE Mixer_s_playMusic(VALUE mod, VALUE music, VALUE loops)
         | 
| 349 337 | 
             
            {
         | 
| 350 | 
            -
              rb_secure(4);
         | 
| 351 338 |  | 
| 352 339 | 
             
              Mix_PlayMusic(Get_Mix_Music(music), NUM2INT(loops));
         | 
| 353 340 | 
             
              playing_music = music; /* to avoid gc problem */
         | 
| @@ -356,7 +343,6 @@ static VALUE Mixer_s_playMusic(VALUE mod, VALUE music, VALUE loops) | |
| 356 343 |  | 
| 357 344 | 
             
            static VALUE Mixer_s_fadeInMusic(VALUE mod, VALUE music, VALUE loops, VALUE ms)
         | 
| 358 345 | 
             
            {
         | 
| 359 | 
            -
              rb_secure(4);
         | 
| 360 346 | 
             
              Mix_FadeInMusic(Get_Mix_Music(music), NUM2INT(loops), NUM2INT(ms));
         | 
| 361 347 | 
             
              playing_music = music; /* to avoid gc problem */
         | 
| 362 348 | 
             
              return Qnil;
         | 
| @@ -364,14 +350,12 @@ static VALUE Mixer_s_fadeInMusic(VALUE mod, VALUE music, VALUE loops, VALUE ms) | |
| 364 350 |  | 
| 365 351 | 
             
            static VALUE Mixer_s_setVolumeMusic(VALUE mod, VALUE volume)
         | 
| 366 352 | 
             
            {
         | 
| 367 | 
            -
              rb_secure(4);
         | 
| 368 353 | 
             
              Mix_VolumeMusic( NUM2INT(volume) );
         | 
| 369 354 | 
             
              return Qnil;
         | 
| 370 355 | 
             
            }
         | 
| 371 356 |  | 
| 372 357 | 
             
            static VALUE Mixer_s_fadeOutMusic(VALUE mod, VALUE ms)
         | 
| 373 358 | 
             
            {
         | 
| 374 | 
            -
              rb_secure(4);
         | 
| 375 359 | 
             
              Mix_FadeOutMusic(NUM2INT(ms));
         | 
| 376 360 | 
             
              return Qnil;
         | 
| 377 361 | 
             
            }
         | 
| @@ -400,7 +384,6 @@ static VALUE Music_s_load(VALUE class, VALUE filename) | |
| 400 384 | 
             
            {
         | 
| 401 385 | 
             
              Mix_Music* music;
         | 
| 402 386 |  | 
| 403 | 
            -
              rb_secure(4);
         | 
| 404 387 | 
             
              ExportFilenameStringValue(filename);
         | 
| 405 388 |  | 
| 406 389 | 
             
              music = Mix_LoadMUS(RSTRING_PTR(filename));
         | 
| @@ -429,7 +412,8 @@ static VALUE Mixer_s_loadMusFromString(VALUE class, VALUE str) | |
| 429 412 |  | 
| 430 413 | 
             
              result = Music_create(music);
         | 
| 431 414 | 
             
              rb_iv_set(result, "buf", buf);
         | 
| 432 | 
            -
             | 
| 415 | 
            +
             | 
| 416 | 
            +
              RB_GC_GUARD(result); RB_GC_GUARD(buf);
         | 
| 433 417 | 
             
              return result;
         | 
| 434 418 | 
             
            }
         | 
| 435 419 | 
             
            #endif
         | 
    
        data/rubysdl_mouse.c
    CHANGED
    
    | @@ -25,7 +25,6 @@ static VALUE Mouse_s_state(VALUE mod) | |
| 25 25 | 
             
            {
         | 
| 26 26 | 
             
              int x,y;
         | 
| 27 27 | 
             
              Uint8 result;
         | 
| 28 | 
            -
              rb_secure(4);
         | 
| 29 28 | 
             
              result = SDL_GetMouseState(&x, &y);
         | 
| 30 29 | 
             
              return rb_ary_new3(5,INT2FIX(x), INT2FIX(y),
         | 
| 31 30 | 
             
                                 INT2BOOL(result&SDL_BUTTON_LMASK),
         | 
| @@ -35,7 +34,6 @@ static VALUE Mouse_s_state(VALUE mod) | |
| 35 34 |  | 
| 36 35 | 
             
            static VALUE Mouse_s_warp(VALUE mod, VALUE x, VALUE y)
         | 
| 37 36 | 
             
            {
         | 
| 38 | 
            -
              rb_secure(4);
         | 
| 39 37 | 
             
              SDL_WarpMouse(NUM2UINT(x), NUM2UINT(y));
         | 
| 40 38 | 
             
              return Qnil;
         | 
| 41 39 | 
             
            }
         | 
| @@ -45,7 +43,6 @@ static VALUE Mouse_s_setCursor_imp(VALUE mod,VALUE data,VALUE mask,VALUE w, | |
| 45 43 | 
             
            {
         | 
| 46 44 | 
             
              SDL_Cursor *new_cursor;
         | 
| 47 45 |  | 
| 48 | 
            -
              rb_secure(4);
         | 
| 49 46 | 
             
              SafeStringValue(data);
         | 
| 50 47 | 
             
              SafeStringValue(mask);
         | 
| 51 48 |  | 
| @@ -76,7 +73,6 @@ static VALUE Mouse_s_setCursor_imp(VALUE mod,VALUE data,VALUE mask,VALUE w, | |
| 76 73 |  | 
| 77 74 | 
             
            static VALUE Mouse_s_show(VALUE mod)
         | 
| 78 75 | 
             
            {
         | 
| 79 | 
            -
              rb_secure(4);
         | 
| 80 76 | 
             
              SDL_ShowCursor(1);
         | 
| 81 77 | 
             
              return Qnil;
         | 
| 82 78 | 
             
            }
         | 
    
        data/rubysdl_rwops.c
    CHANGED
    
    | @@ -27,6 +27,8 @@ static int rubyio_read(SDL_RWops* context, void* ptr, int size, int maxnum) | |
| 27 27 | 
             
              StringValue(str);
         | 
| 28 28 |  | 
| 29 29 | 
             
              memcpy(ptr, RSTRING_PTR(str), RSTRING_LEN(str));
         | 
| 30 | 
            +
             | 
| 31 | 
            +
              RB_GC_GUARD(io); RB_GC_GUARD(str);
         | 
| 30 32 | 
             
              return RSTRING_LEN(str)/size;
         | 
| 31 33 | 
             
            }
         | 
| 32 34 |  | 
| @@ -60,6 +62,8 @@ static int rubyio_pseudo_seek(SDL_RWops* context, int offset, int whence) | |
| 60 62 | 
             
                SDL_SetError("Unknown value for 'whence'");
         | 
| 61 63 | 
             
                return(-1);
         | 
| 62 64 | 
             
              }
         | 
| 65 | 
            +
             | 
| 66 | 
            +
              RB_GC_GUARD(io); RB_GC_GUARD(str);
         | 
| 63 67 | 
             
              return NUM2INT(rb_funcall(io, rb_intern("tell"), 0));
         | 
| 64 68 | 
             
            }
         | 
| 65 69 |  | 
    
        data/rubysdl_sdlskk.c
    CHANGED
    
    | @@ -185,7 +185,6 @@ static VALUE Dictionary_s_new(VALUE klass) | |
| 185 185 | 
             
            static VALUE Dictionary_load(VALUE self, VALUE filename, VALUE users)
         | 
| 186 186 | 
             
            {
         | 
| 187 187 | 
             
              SDLSKK_Dictionary* dict = Get_SDLSKK_Dictionary(self);
         | 
| 188 | 
            -
              rb_secure(4);
         | 
| 189 188 | 
             
              ExportFilenameStringValue(filename);
         | 
| 190 189 |  | 
| 191 190 | 
             
              if(!SDLSKK_Dict_load(dict, RSTRING_PTR(filename), RTEST(users)))
         | 
| @@ -197,7 +196,6 @@ static VALUE Dictionary_load(VALUE self, VALUE filename, VALUE users) | |
| 197 196 | 
             
            static VALUE Dictionary_save(VALUE self, VALUE filename)
         | 
| 198 197 | 
             
            {
         | 
| 199 198 | 
             
              SDLSKK_Dictionary* dict = Get_SDLSKK_Dictionary(self);
         | 
| 200 | 
            -
              rb_secure(4);
         | 
| 201 199 | 
             
              ExportFilenameStringValue(filename);
         | 
| 202 200 |  | 
| 203 201 | 
             
              if(!SDLSKK_Dict_save_user_dict(dict, RSTRING_PTR(filename)))
         | 
| @@ -208,7 +206,6 @@ static VALUE Dictionary_save(VALUE self, VALUE filename) | |
| 208 206 | 
             
            static VALUE RomKanaRuleTable_s_new(VALUE klass, VALUE table_file)
         | 
| 209 207 | 
             
            {
         | 
| 210 208 | 
             
              SDLSKK_RomKanaRuleTable* rule_table;
         | 
| 211 | 
            -
              rb_secure(4);
         | 
| 212 209 | 
             
              ExportFilenameStringValue(table_file);
         | 
| 213 210 |  | 
| 214 211 | 
             
              rule_table = SDLSKK_RomKanaRuleTable_new(RSTRING_PTR(table_file));
         | 
    
        data/rubysdl_sge_video.c
    CHANGED
    
    | @@ -55,20 +55,17 @@ static VALUE BMFont_create(sge_bmpFont* font) | |
| 55 55 |  | 
| 56 56 | 
             
            static VALUE Surface_s_autoLock_p(VALUE klass)
         | 
| 57 57 | 
             
            {
         | 
| 58 | 
            -
              rb_secure(4);
         | 
| 59 58 | 
             
              return INT2BOOL(sge_getLock());
         | 
| 60 59 | 
             
            }
         | 
| 61 60 |  | 
| 62 61 | 
             
            static VALUE Surface_s_autoLockON(VALUE klass)
         | 
| 63 62 | 
             
            {
         | 
| 64 | 
            -
              rb_secure(4);
         | 
| 65 63 | 
             
              sge_Lock_ON();
         | 
| 66 64 | 
             
              return Qnil;
         | 
| 67 65 | 
             
            }
         | 
| 68 66 |  | 
| 69 67 | 
             
            static VALUE Surface_s_autoLockOFF(VALUE klass)
         | 
| 70 68 | 
             
            {
         | 
| 71 | 
            -
              rb_secure(4);
         | 
| 72 69 | 
             
              sge_Lock_OFF();
         | 
| 73 70 | 
             
              return Qnil;
         | 
| 74 71 | 
             
            }
         | 
| @@ -80,7 +77,6 @@ static VALUE Surface_drawLine(int argc, VALUE* argv, VALUE self) | |
| 80 77 | 
             
              Uint32 color;
         | 
| 81 78 | 
             
              SDL_Surface* surface;
         | 
| 82 79 |  | 
| 83 | 
            -
              rb_secure(4);
         | 
| 84 80 | 
             
              rb_scan_args(argc, argv, "52", &x1_, &y1_, &x2_, &y2_, &color_, &aa_, &alpha_);
         | 
| 85 81 | 
             
              surface = Get_SDL_Surface(self);
         | 
| 86 82 |  | 
| @@ -139,7 +135,6 @@ static VALUE Surface_drawCircle(int argc, VALUE* argv, VALUE self) | |
| 139 135 | 
             
              Sint16 x, y, r;
         | 
| 140 136 | 
             
              Uint32 color;
         | 
| 141 137 |  | 
| 142 | 
            -
              rb_secure(4);
         | 
| 143 138 | 
             
              rb_scan_args(argc, argv, "43", &x_, &y_, &r_, &color_, &fill_, &aa_, &alpha_);
         | 
| 144 139 |  | 
| 145 140 | 
             
              surface = Get_SDL_Surface(self);
         | 
| @@ -183,7 +178,6 @@ static VALUE Surface_drawEllipse(int argc, VALUE* argv, VALUE self) | |
| 183 178 | 
             
              Sint16 x, y, rx, ry;
         | 
| 184 179 | 
             
              Uint32 color;
         | 
| 185 180 |  | 
| 186 | 
            -
              rb_secure(4);
         | 
| 187 181 | 
             
              rb_scan_args(argc, argv, "53", &x_, &y_, &rx_, &ry_, &color_,
         | 
| 188 182 | 
             
                           &fill_, &aa_, &alpha_);
         | 
| 189 183 |  | 
| @@ -231,7 +225,6 @@ static VALUE Surface_drawBezier(int argc, VALUE* argv, VALUE self) | |
| 231 225 | 
             
              int level;
         | 
| 232 226 | 
             
              int i;
         | 
| 233 227 |  | 
| 234 | 
            -
              rb_secure(4);
         | 
| 235 228 | 
             
              /* WARNING:  third argument of rb_scan_args
         | 
| 236 229 | 
             
                 should be 10-2, but rb_scan_args cannot accept such
         | 
| 237 230 | 
             
                 an argument.
         | 
| @@ -290,7 +283,6 @@ static VALUE Surface_s_transformDraw(VALUE klass, VALUE src, VALUE dst, | |
| 290 283 | 
             
                                                 VALUE qx, VALUE qy,
         | 
| 291 284 | 
             
                                                 VALUE flags)
         | 
| 292 285 | 
             
            {
         | 
| 293 | 
            -
              rb_secure(4);
         | 
| 294 286 | 
             
              sge_transform(Get_SDL_Surface(src), Get_SDL_Surface(dst),
         | 
| 295 287 | 
             
                            NUM2DBL(angle), NUM2DBL(xscale), NUM2DBL(yscale),
         | 
| 296 288 | 
             
            		NUM2INT(px), NUM2INT(py), NUM2INT(qx), NUM2INT(qy),
         | 
| @@ -303,7 +295,6 @@ static VALUE Surface_transform(VALUE self, VALUE bgcolor, VALUE angle, | |
| 303 295 | 
             
            {
         | 
| 304 296 | 
             
              SDL_Surface *surface, *result;
         | 
| 305 297 |  | 
| 306 | 
            -
              rb_secure(4);
         | 
| 307 298 | 
             
              surface = Get_SDL_Surface(self);
         | 
| 308 299 | 
             
              result = sge_transform_surface(surface, VALUE2COLOR(bgcolor, surface->format), 
         | 
| 309 300 | 
             
            				 NUM2DBL(angle), NUM2DBL(xscale), 
         | 
| @@ -316,7 +307,6 @@ static VALUE Surface_transform(VALUE self, VALUE bgcolor, VALUE angle, | |
| 316 307 | 
             
            static VALUE Surface_makeCollisionMap(VALUE self)
         | 
| 317 308 | 
             
            {
         | 
| 318 309 | 
             
              sge_cdata * cdata;
         | 
| 319 | 
            -
              rb_secure(4);
         | 
| 320 310 | 
             
              cdata = sge_make_cmap(Get_SDL_Surface(self));
         | 
| 321 311 | 
             
              if(cdata == NULL)
         | 
| 322 312 | 
             
                rb_raise(eSDLError, "Couldn't Create CollisionMap: %s", SDL_GetError());
         | 
| @@ -370,7 +360,6 @@ static VALUE CollisionMap_set(VALUE self, VALUE vx, VALUE vy, VALUE vw, VALUE vh | |
| 370 360 | 
             
              sge_cdata * cdata = Get_sge_cdata(self);
         | 
| 371 361 | 
             
              Sint16 x,  y,  w,  h;
         | 
| 372 362 |  | 
| 373 | 
            -
              rb_secure(4);
         | 
| 374 363 | 
             
              x = NUM2INT(vx);
         | 
| 375 364 | 
             
              y = NUM2INT(vy);
         | 
| 376 365 | 
             
              w = NUM2INT(vw);
         | 
| @@ -387,7 +376,6 @@ static VALUE CollisionMap_clear(VALUE self, VALUE vx, VALUE vy, VALUE vw, VALUE | |
| 387 376 | 
             
              sge_cdata * cdata = Get_sge_cdata(self);
         | 
| 388 377 | 
             
              Sint16 x,  y,  w,  h;
         | 
| 389 378 |  | 
| 390 | 
            -
              rb_secure(4);
         | 
| 391 379 | 
             
              x = NUM2INT(vx);
         | 
| 392 380 | 
             
              y = NUM2INT(vy);
         | 
| 393 381 | 
             
              w = NUM2INT(vw);
         | 
| @@ -415,7 +403,6 @@ static VALUE BMFont_open(VALUE klass,  VALUE file,  VALUE flags) | |
| 415 403 |  | 
| 416 404 | 
             
            {
         | 
| 417 405 | 
             
              sge_bmpFont* font;
         | 
| 418 | 
            -
              rb_secure(4);
         | 
| 419 406 | 
             
              ExportFilenameStringValue(file);
         | 
| 420 407 |  | 
| 421 408 | 
             
              font = sge_BF_OpenFont(RSTRING_PTR(file), NUM2UINT(flags));
         | 
| @@ -468,7 +455,6 @@ static VALUE BMFont_textout(VALUE self, | |
| 468 455 | 
             
                                        VALUE x,  VALUE y)
         | 
| 469 456 |  | 
| 470 457 | 
             
            {
         | 
| 471 | 
            -
              rb_secure(4);
         | 
| 472 458 | 
             
              SafeStringValue(string);
         | 
| 473 459 |  | 
| 474 460 | 
             
              sge_BF_textout(Get_SDL_Surface(surface), Get_sge_bmpFont(self),
         |