-#
-# 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;
-
- my $self = \SDL::NewRect($x,$y,$w,$h);
- bless $self,$class;
- return $self;
-}
-
-sub DESTROY {
- SDL::FreeRect(${$_[0]});
-}
-
-sub x {
- my $self = shift;
- SDL::RectX($$self,@_);
-}
-
-sub y {
- my $self = shift;
- SDL::RectY($$self,@_);
-}
-
-sub width {
- my $self = shift;
- SDL::RectW($$self,@_);
-}
-
-sub height {
- my $self = shift;
- SDL::RectH($$self,@_);
-}
+require Exporter;
+require DynaLoader;
+our @ISA = qw(Exporter DynaLoader);
+bootstrap SDL::Rect;
1;
-__END__;
+__END__
=pod
-
=head1 NAME
-SDL::Rect - a SDL perl extension
+SDL::Rect - Defines a rectangular area
=head1 SYNOPSIS
- $rect = new SDL::Rect ( -height => 4, -width => 40 );
+ my $rect = SDL::Rect->new( 0, 0, 0, 0 );
+ $rect->x(1);
+ $rect->y(2);
+ $rect->w(3);
+ $rect->h(4);
+ my $x = $rect->x; # 1
+ my $y = $rect->y; # 2
+ my $w = $rect->w; # 3
+ my $h = $rect->h; # 4
=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.
+An C<SDL_Rect> defines a rectangular area of pixels.
-=head2 METHODS
+=head1 METHODS
-The four fields of a rectangle can be set simply
-by passing a value to the applicable method. These are:
+=head2 new ( $x, $y, $w, $h )
-=over 4
+The constructor creates a new rectangle with the specified x, y, w, h
+values:
-=item *
+ my $rect = SDL::Rect->new( 0, 0, 0, 0 );
-C<SDL::Rect::x> sets and fetches the x position.
+=head2 x
-=item *
+If passed a value, this method sets the x component of the rectangle;
+if not, it returns the x component of the rectangle:
-C<SDL::Rect::y> sets and fetches the y position.
+ my $x = $rect->x; # 255
+ $rect->x(128);
-=item *
+=head2 y
-C<SDL::Rect::width> sets and fetched the width.
+If passed a value, this method sets the y component of the rectangle;
+if not, it returns the y component of the rectangle:
-=item *
+ my $y = $rect->y; # 255
+ $rect->y(128);
-C<SDL::Rect::height> sets and fetched the height.
+=head2 w
-=back
+If passed a value, this method sets the w component of the rectangle;
+if not, it returns the w component of the rectangle:
-=head1 AUTHOR
+ my $w = $rect->w; # 255
+ $rect->w(128);
-David J. Goehrig
+=head2 h
-=head1 SEE ALSO
+If passed a value, this method sets the h component of the rectangle;
+if not, it returns the h component of the rectangle:
-perl(1) SDL::Surface(3)
+ my $h = $rect->h; # 255
+ $rect->h(128);
+=head1 SEE ALSO
-=cut
+L<SDL::Surface>
+=cut