Using new Rect with v2.2.2.11. Had to change getClipRect paramters.
[sdlgit/SDL_perl.git] / lib / SDL / Rect.pm
index 13f05d2..d8aedf5 100644 (file)
-#
-#      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<SDL::Rect::new> 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<SDL::Rect::x>        sets and fetches the x position.
-
-=item *
-
-C<SDL::Rect::y>        sets and fetches the y position.
-
-=item *
-
-C<SDL::Rect::width> sets and fetched the width.
-
-=item *
-
-C<SDL::Rect::height> 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__