X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSDL%2FSurface.pm;h=0d58261e778e881c93601b21dafc5375b160185f;hb=97e6904f18ed81813209b69c8eca0780b49f57b6;hp=d0a53d6cf58eafcbb540fb8611960c282bef9337;hpb=8898221d8f4f62490daab29e054fe38d824bf6d1;p=sdlgit%2FSDL_perl.git diff --git a/lib/SDL/Surface.pm b/lib/SDL/Surface.pm index d0a53d6..0d58261 100644 --- a/lib/SDL/Surface.pm +++ b/lib/SDL/Surface.pm @@ -1,3 +1,15 @@ +package SDL::Surface; +use strict; +use warnings; +require Exporter; +require DynaLoader; +our @ISA = qw(Exporter DynaLoader); +bootstrap SDL::Surface; + +1; + +__END__ + #!/usr/bin/env perl # # Surface.pm @@ -37,7 +49,7 @@ use SDL; use SDL::SFont; use SDL::Color; use SDL::Rect; - +use Data::Dumper; sub new { my $proto = shift; my $class = ref($proto) || $proto; @@ -166,7 +178,7 @@ sub fill { if ($_[1] == 0 ) { SDL::FillRect(${$_[0]},0,${$_[2]}); } else { - SDL::FillRect(${$_[0]},${$_[1]},${$_[2]}); + SDL::FillRect(${$_[0]},$_[1],$_[2]); } } @@ -208,7 +220,9 @@ sub blit { croak "SDL::Surface::blit requires SDL::Surface objects" unless $_[2]->isa('SDL::Surface'); } - SDL::BlitSurface(map { (defined($_) && $_ != 0)? ${$_} : $_ } @_) if defined(@_); + #BlitSurface ( src, src_rect, dest, dest_rect ) + + SDL::BlitSurface( ${$_[0]}, $_[1], ${$_[2]}, $_[3]); } sub set_colors { @@ -239,6 +253,14 @@ sub display_format { $self; } +sub display_format_alpha { + my $self = shift; + my $tmp = SDL::DisplayFormatAlpha($$self); + SDL::FreeSurface ($$self); + $$self = $tmp; + $self; +} + sub rgb { my $self = shift; my $tmp = SDL::ConvertRGB($$self); @@ -525,13 +547,18 @@ C takes a value from 0x00 to 0xff. C converts the surface to the same format as the current screen. +=head2 display_format_alpha () + +C converts the surface to the same format as the +current screen, plus an alpha channel. + =head2 rgb () -C converts the surface to a 24 bit rgb format regardless of the -initial format. + +C converts the surface to a 24 bit rgb format regardless of the initial format. =head2 rgba () -C converts the surface to a 32 bit rgba format regarless of the -initial format. + +C converts the surface to a 32 bit rgba format regarless of the initial format. =head2 print (x,y,text...)