Applied relevant debian patchesand move version to v2.2.2.13
Kartik Thakore [Fri, 11 Sep 2009 15:24:03 +0000 (11:24 -0400)]
lib/SDL.pm
src/OpenGL.xs
src/SFont.xs
test/loopwave.pl
test/testjoystick.pl
test/testtimer.pl

index 0778469..5137856 100644 (file)
@@ -54,7 +54,7 @@ sub import {
   $self->export_to_level(1, @_);
   SDL::Constants->export_to_level(1);
 }
-$VERSION = '2.2.2.11';
+$VERSION = '2.2.2.13';
 
 print "$VERSION" if (defined($ARGV[0]) && ($ARGV[0] eq '--SDLperl'));
 
@@ -108,6 +108,7 @@ the C<SDL::Init> subroutine.  This routine takes a mode flag constructed through
 the bitwise OR product of the following functions:  
 
 =over 4
+
 =item *
 INIT_AUDIO()
 
index 807c997..841d92b 100644 (file)
@@ -67,6 +67,8 @@ constants missing in GL/gl.h thus we need also GL/glext.h
 #define GL_ALL_CLIENT_ATTRIB_BITS 0xFFFFFFF
 #endif /* GL_ALL_CLIENT_BITS */  
 
+#define GL_HAS_NURBS
+
 #include "../../src/defines.h"
 
 SV* sdl_perl_nurbs_error_hook;
@@ -958,7 +960,7 @@ glLoadMatrix (  ... )
                int i;
                double mat[16];
                for ( i = 0; i < 16; i++ ) {
-                       mat[i] = (i < items  && SvNOK(ST(i)) ? SvNV(ST(i)) : 0.0 );
+                       mat[i] = i < items ? SvNV(ST(i)) : 0.0;
                }
                glLoadMatrixd(mat);
 
@@ -968,7 +970,7 @@ glMultMatrix ( ... )
                int i;
                double mat[16];
                for ( i = 0; i < 16; i++ ) {
-                       mat[i] = (i < items  && SvNOK(ST(i)) ? SvNV(ST(i)) : 0.0 );
+                       mat[i] = i < items ? SvNV(ST(i)) : 0.0;
                }
                glMultMatrixd(mat);
 
@@ -1052,7 +1054,7 @@ glClipPlane ( plane, ... )
                double v[4];
                int i;
                for (i = 0; i < 4; i++ ) {
-                       v[i] = (i+1 < items && SvNOK(ST(i+1))) ? SvNV(ST(i+1)) : 0.0;
+                       v[i] = i+1 < items ? SvNV(ST(i+1)) : 0.0;
                }
                glClipPlane(plane,v);
        
@@ -1091,13 +1093,13 @@ glLight ( light, name, ... )
                if ( items == 6 ) {
                        float v[4];     
                        for ( i = 0; i < 4; i++ ) {
-                               v[i] = (SvNOK(ST(i+2))) ? SvNV(ST(i+2)) : 0.0;
+                               v[i] = SvNV(ST(i+2));
                        }
                        glLightfv(light,name,v);        
                } else if ( items == 5 ) {
                        float v[3];
                        for ( i = 0; i < 3; i++ ) {
-                               v[i] = (SvNOK(ST(i+2))) ? SvNV(ST(i+2)) : 0.0;
+                               v[i] = SvNV(ST(i+2));
                        }
                        glLightfv(light,name,v);        
                } else if ( items == 3 ) {
@@ -1136,13 +1138,13 @@ glMaterial ( face, name, ... )
                if ( items == 6 ) {
                        float v[4];
                        for ( i = 0; i < 4; i++ ) {
-                               v[i] = (SvNOK(ST(i+2))) ? SvNV(ST(i+2)) : 0.0;
+                               v[i] = SvNV(ST(i+2));
                        }
                        glMaterialfv(face,name,v);
                } else if ( items == 5 ) {
                        float v[3];
-                       for ( i = 0; i < 4; i++ ) {
-                               v[i] = (SvNOK(ST(i+2))) ? SvNV(ST(i+2)) : 0.0;
+                       for ( i = 0; i < 3; i++ ) {
+                               v[i] = SvNV(ST(i+2));
                        }
                        glMaterialfv(face,name,v);
                } else if ( items == 3 ) {      
index 2839a67..5c5136b 100644 (file)
@@ -225,7 +225,7 @@ void SFont_InternalInput( SDL_Surface *Dest, SFont_FontInfo *Font, int x, int y,
                if ((ch=='\b')&&(strlen(text)>0))
                    text[strlen(text)-1]='\0';
                else if (ch!='\b')
-                   sprintf(text,"%s%c",text,ch);
+                   sprintf(text+strlen(text),"%c",ch);
                if (SFont_TextWidth2(Font,text)>PixelWidth) text[strlen(text)-1]='\0';
                SDL_BlitSurface( Back, NULL, Dest, &rect);
                SFont_PutString2(Dest, Font, x, y, text);
index 458d93c..48af51d 100644 (file)
@@ -1,10 +1,11 @@
 #!/usr/bin/env perl
 
 use SDL;
+use SDL::Event;
 use Carp;
 
 croak "Could not initialize SDL: ", SDL::GetError()
-       if ( 0 > SDL::Init(SDL_INIT_AUDIO()));
+       if ( 0 > SDL::Init(SDL_INIT_AUDIO));
 
 $ARGV[0] ||= 'data/sample.wav';
 
@@ -57,7 +58,7 @@ SDL::PauseAudio(0);
 
 print "Using audio driver: ", SDL::AudioDriverName(), "\n";
        
-while (! $done && ( SDL::GetAudioStatus() == SDL_AUDIO_PLAYING())) {
+while (! $done && ( SDL::GetAudioStatus() == SDL_AUDIO_PLAYING)) {
        SDL::Delay(1000);
 }
 
index cf390ba..79efa6c 100644 (file)
@@ -44,50 +44,50 @@ sub WatchJoystick($){
          {
                while($event->poll())
                  {
-                       if($event->type() eq SDL::JOYAXISMOTION())
+                       if($event->type() eq SDL_JOYAXISMOTION)
                          {
                                print "Joystick ".SDL::JoyAxisEventWhich($$event).
                                  " axis ".SDL::JoyAxisEventAxis($$event).
                                        " value: ".SDL::JoyAxisEventValue($$event)."\n";
                          } 
-                       elsif($event->type() eq SDL::JOYHATMOTION())
+                       elsif($event->type() eq SDL_JOYHATMOTION)
                          {
                                print "Joystick ".SDL::JoyHatEventWhich($$event).
                                  " hat ".SDL::JoyHatEventHat($$event);
-                               if(SDL::JoyHatEventValue($$event) == SDL::HAT_CENTERED() )
+                               if(SDL::JoyHatEventValue($$event) == SDL_HAT_CENTERED() )
                                  {
                                        print " centered";
-                                 } elsif(SDL::JoyHatEventValue($$event) == SDL::HAT_UP() ) { 
+                                 } elsif(SDL::JoyHatEventValue($$event) == SDL_HAT_UP() ) { 
                                        print " up";
-                                 } elsif(SDL::JoyHatEventValue($$event) == SDL::HAT_RIGHT() ) {
+                                 } elsif(SDL::JoyHatEventValue($$event) == SDL_HAT_RIGHT() ) {
                                        print " right";
-                                 } elsif(SDL::JoyHatEventValue($$event) == SDL::HAT_DOWN() ) {
+                                 } elsif(SDL::JoyHatEventValue($$event) == SDL_HAT_DOWN() ) {
                                        print " down";
-                                 } elsif(SDL::JoyHatEventValue($$event) == SDL::HAT_LEFT()) {
+                                 } elsif(SDL::JoyHatEventValue($$event) == SDL_HAT_LEFT()) {
                                        print " left";
-                                 } elsif(SDL::JoyHatEventValue($$event) == SDL::HAT_RIGHTUP() ) { 
+                                 } elsif(SDL::JoyHatEventValue($$event) == SDL_HAT_RIGHTUP() ) { 
                                        print " right & up";
-                                 } elsif(SDL::JoyHatEventValue($$event) == SDL::HAT_RIGHTDOWN() ) {
+                                 } elsif(SDL::JoyHatEventValue($$event) == SDL_HAT_RIGHTDOWN() ) {
                                        print " right & down";
-                                 } elsif(SDL::JoyHatEventValue($$event) == SDL::HAT_LEFTDOWN() ) {
+                                 } elsif(SDL::JoyHatEventValue($$event) == SDL_HAT_LEFTDOWN() ) {
                                        print " left & down";
-                                 } elsif(SDL::JoyHatEventValue($$event) == SDL::HAT_LEFTUP()) {
+                                 } elsif(SDL::JoyHatEventValue($$event) == SDL_HAT_LEFTUP()) {
                                        print " left & up";
                                  }
                                print "\n";
-                         } elsif($event->type() eq SDL::JOYBALLMOTION()){
+                         } elsif($event->type() eq SDL_JOYBALLMOTION){
                                print "Joystick ".SDL::JoyBallEventWhich($$event).
                                  " ball ".SDL::JoyBallEventBall($$event).
                                      " delta: (".SDL::JoyBallEventXrel($$event).
                                      ",".SDL::JoyBallEventYrel($$event)."\n";
-                       } elsif($event->type() eq SDL::JOYBUTTONDOWN()){
+                       } elsif($event->type() eq SDL_JOYBUTTONDOWN){
                                print "Joystick ".SDL::JoyButtonEventWhich($$event).
                                      " button ".SDL::JoyButtonEventButton($$event)." down\n";
-                       } elsif($event->type() eq SDL::JOYBUTTONUP()){
+                       } elsif($event->type() eq SDL_JOYBUTTONUP){
                                print "Joystick ".SDL::JoyButtonEventWhich($$event).
                                      " button ".SDL::JoyButtonEventButton($$event)." up\n";
-                       } elsif($event->type() eq SDL_QUIT() or 
-                               ($event->type() eq SDL_KEYDOWN() and 
+                       } elsif($event->type() eq SDL_QUIT or 
+                               ($event->type() eq SDL_KEYDOWN and 
                                 $event->key_sym() == SDLK_ESCAPE)){
                                $done = 1;
                        }
@@ -101,7 +101,7 @@ sub WatchJoystick($){
                                                                                  -height => 32,
                                                                                  -x => $i*34,
                                                                                  -y => $screenHeight-34); 
-                               if(SDL::JoystickGetButton($joystick, $i) eq SDL::PRESSED())
+                               if(SDL::JoystickGetButton($joystick, $i) eq SDL_PRESSED)
                                  {
                                        $app->fill($rect, $colorWhite); 
                                  } else {
index 523d085..209c1bf 100644 (file)
@@ -2,10 +2,11 @@
 
 use SDL;
 use SDL::Timer;
+use SDL::Event;
 
 die "usage: $0\n" if in($ARGV[0], qw/ -? -h --help/);
 
-SDL::Init(SDL_INIT_EVERYTHING());
+SDL::Init(SDL_INIT_TIMER);
 
 print STDERR "Waiting 4 seconds\n";
 SDL::Delay(4000);