FreeBSD audio on cpan still fails. So fixed test to catch it better
[sdlgit/SDL_perl.git] / lib / SDL / Surface.pm
index 16eaefb..d0a53d6 100644 (file)
@@ -163,10 +163,6 @@ sub pixel {
 }
 
 sub fill {
-       croak "SDL::Surface::fill requires a SDL::Rect object"
-               unless !$SDL::DEBUG || $_[1] == 0 || $_[1]->isa('SDL::Rect');
-       croak "SDL::Surface::fill requires a SDL::Color object"
-               unless !$SDL::DEBUG || $_[2]->isa('SDL::Color');
        if ($_[1] == 0 ) {
                SDL::FillRect(${$_[0]},0,${$_[2]});
        } else {
@@ -202,6 +198,9 @@ sub flip {
 }
 
 sub blit {
+               $_[1] = 0 unless defined $_[1];
+               $_[3] = 0 unless defined $_[3];
+
        if ($SDL::DEBUG) {
                croak "SDL::Surface::blit requires SDL::Rect objects"
                        unless ($_[1] == 0 || $_[1]->isa('SDL::Rect'))
@@ -209,7 +208,7 @@ sub blit {
                croak "SDL::Surface::blit requires SDL::Surface objects"
                        unless $_[2]->isa('SDL::Surface'); 
        }
-       SDL::BlitSurface(map { $_ != 0 ? ${$_} : $_ } @_);
+               SDL::BlitSurface(map { (defined($_) && $_ != 0)? ${$_} : $_ } @_) if defined(@_);
 }
 
 sub set_colors {