X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSDL%2FRect.pm;h=d8aedf5d4c9b7605d189a3f74f664221643f75d8;hb=e4ab5b2e8635df41fd14c9e92e2c3ec7277bda0a;hp=f63dbe28cd0f42a495e65236f297e14a12818458;hpb=bfd90409c307d445ed6fec5cce6344b1e3d1be05;p=sdlgit%2FSDL_perl.git diff --git a/lib/SDL/Rect.pm b/lib/SDL/Rect.pm index f63dbe2..d8aedf5 100644 --- a/lib/SDL/Rect.pm +++ b/lib/SDL/Rect.pm @@ -1,135 +1,71 @@ -#!/usr/bin/env perl -# -# Rect.pm -# -# Copyright (C) 2005 David J. Goehrig -# -# ------------------------------------------------------------------------------ -# -# 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::Rect; +#use strict; -use strict; -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; +require Exporter; +require DynaLoader; - my $x = $options{-x} || 0; - my $y = $options{-y} || 0; - my $w = $options{-width} || $options{-w} || 0; - my $h = $options{-height} || $options{-h} || 0; +@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); - die SDL::GetError() unless $$self; - bless $self,$class; - return $self; -} +); +#$VERSION = '0.01'; -sub DESTROY { - SDL::FreeRect(${$_[0]}); +bootstrap SDL::Rect; + +# 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__