More fixes, some clean up. For some reason blit is not work
[sdlgit/SDL_perl.git] / lib / SDL.pm
index e7f88cb..e7d77e9 100644 (file)
@@ -1,10 +1,39 @@
+#!/usr/bin/env perl
 #
-# Copyright (C) 2004 David J. Goehrig
+# SDL.pm
+#
+# Copyright (C) 2005 David J. Goehrig <dgoehrig@cpan.org>
+#
+# ------------------------------------------------------------------------------
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+# 
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+# 
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# ------------------------------------------------------------------------------
+#
+# Please feel free to send questions, suggestions or improvements to:
+#
+#      David J. Goehrig
+#      dgoehrig@cpan.org
 #
 
 package SDL;
 
 use strict;
+use warnings;
+use Carp;
+
 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
 
 require Exporter;
@@ -16,18 +45,21 @@ use SDL::Constants;
 BEGIN {
        @ISA = qw(Exporter DynaLoader);
        @EXPORT = qw( in verify &NULL );
-       # reexport all SDL constants
-       for (@SDL::Constants::EXPORT) {
-               push @EXPORT,$_;
-       }
 };
 
+# Give our caller SDL::Constant's stuff as well as ours.
+sub import {
+  my $self = shift;
+
+  $self->export_to_level(1, @_);
+  SDL::Constants->export_to_level(1);
+}
 
-$VERSION = '2.1.3';
+$VERSION = '2.2.2.15';
 
 print "$VERSION" if (defined($ARGV[0]) && ($ARGV[0] eq '--SDLperl'));
 
-$SDL::DEBUG=1;
+$SDL::DEBUG=0;
 
 sub NULL {
        return 0;
@@ -35,13 +67,17 @@ sub NULL {
 
 sub in {
        my ($k,@t) = @_;
-       (scalar grep { defined $_ && $_ eq $k } @t) <=> 0;
+       return 0 unless defined $k;
+       my $r = ((scalar grep { defined $_ && $_ eq $k } @t) <=> 0);
+       return 0 if $r eq '';
+       return $r;
+
 } 
 
 sub verify (\%@) {
        my ($options,@valid_options) = @_;
        for (keys %$options) {
-               die "Invalid option $_\n" unless in ($_, @valid_options);
+               croak "Invalid option $_\n" unless in ($_, @valid_options);
        }
 }
 
@@ -73,6 +109,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()
 
@@ -998,11 +1035,12 @@ If the rectangle is NULL, the entire surface will be painted.
 
 =head1 AUTHOR
 
-David J. Goehrig
+David J. Goehrig 2.1.3
+Kartik Thakore 2.2.0 +
 
 =head1 CONTRIBUTORS
 
-David J. Goehrig, Wayne Keenan, Guillaume Cottenceau
+David J. Goehrig, Wayne Keenan, Guillaume Cottenceau, Kartik Thakore
 
 =head1 SEE ALSO