X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSDL%2FRect.pm;h=d8aedf5d4c9b7605d189a3f74f664221643f75d8;hb=e4ab5b2e8635df41fd14c9e92e2c3ec7277bda0a;hp=13f05d2fbf9b37e4fc0762781519fab65def9cd6;hpb=084b921f85583af6a5b82572f6a561c94dd2fb5d;p=sdlgit%2FSDL_perl.git diff --git a/lib/SDL/Rect.pm b/lib/SDL/Rect.pm index 13f05d2..d8aedf5 100644 --- a/lib/SDL/Rect.pm +++ b/lib/SDL/Rect.pm @@ -1,112 +1,71 @@ -# -# Rect.pm -# -# A package for manipulating SDL_Rect * -# -# Copyright (C) 2003 David J. Goehrig - package SDL::Rect; -use strict; -use warnings; -use Carp; -use SDL; - -sub new { - my $proto = shift; - my $class = ref($proto) || $proto; - my %options = @_; - - verify (%options, qw/ -x -y -width -height -w -h / ) if $SDL::DEBUG; - - my $x = $options{-x} || 0; - my $y = $options{-y} || 0; - my $w = $options{-width} || $options{-w} || 0; - my $h = $options{-height} || $options{-h} || 0; +#use strict; + + +require Exporter; +require DynaLoader; + +@ISA = qw(Exporter DynaLoader); +# Items to export into callers namespace by default. Note: do not export +# names by default without a very good reason. Use EXPORT_OK instead. +# Do not simply export all your public functions/methods/constants. +@EXPORT = qw( - my $self = \SDL::NewRect($x,$y,$w,$h); - bless $self,$class; - return $self; -} +); +#$VERSION = '0.01'; + +bootstrap SDL::Rect; -sub DESTROY { - SDL::FreeRect(${$_[0]}); +# Preloaded methods go here. + +# TODO: mangle with the symbol table to create an alias +# to sub x. We could call x from inside the sub but that +# would be another call and rects are a time-critical object. +sub left { + my $self = shift; + RectX($self,@_); } sub x { my $self = shift; - SDL::RectX($$self,@_); + RectX($self,@_); } -sub y { +### TODO: see 'left' above (this is an 'alias' to sub y) +sub top { my $self = shift; - SDL::RectY($$self,@_); + RectY($self,@_); } -sub width { +sub y { my $self = shift; - SDL::RectW($$self,@_); + RectY($self,@_); } -sub height { +### TODO: see 'left' above (this is an 'alias' to sub width) +sub w { my $self = shift; - SDL::RectH($$self,@_); + RectW($self,@_); } -1; - -__END__; - -=pod - - -=head1 NAME - -SDL::Rect - a SDL perl extension - -=head1 SYNOPSIS - - $rect = new SDL::Rect ( -height => 4, -width => 40 ); - -=head1 DESCRIPTION - -C creates a SDL_Rect structure which is -used for specifying regions for filling, blitting, and updating. -These objects make it easy to cut and backfill. -By default, x, y, h, w are 0. - -=head2 METHODS - -The four fields of a rectangle can be set simply -by passing a value to the applicable method. These are: - -=over 4 - -=item * - -C sets and fetches the x position. - -=item * - -C sets and fetches the y position. - -=item * - -C sets and fetched the width. - -=item * - -C sets and fetched the height. - -=back - -=head1 AUTHOR - -David J. Goehrig +sub width { + my $self = shift; + RectW($self,@_); +} -=head1 SEE ALSO +### TODO: see 'left' above (this is an 'alias' to sub height) +sub h { + my $self = shift; + RectH($self,@_); +} -perl(1) SDL::Surface(3) +sub height { + my $self = shift; + RectH($self,@_); +} -=cut +# Autoload methods go after __END__, and are processed by the autosplit program. +1; +__END__