credits where they are due
[sdlgit/SDL_perl.git] / lib / SDL.pm
index 0778469..11c5ea0 100644 (file)
@@ -3,7 +3,7 @@
 # SDL.pm
 #
 # Copyright (C) 2005 David J. Goehrig <dgoehrig@cpan.org>
-#
+# Copyright (C) 2009 Kartik Thakore   <kthakore@cpan.org>
 # ------------------------------------------------------------------------------
 #
 # This library is free software; you can redistribute it and/or
@@ -24,8 +24,8 @@
 #
 # Please feel free to send questions, suggestions or improvements to:
 #
-#      David J. Goehrig
-#      dgoehrig@cpan.org
+#      Kartik Thakore
+#      kthakore@cpan.org
 #
 
 package SDL;
@@ -54,7 +54,7 @@ sub import {
   $self->export_to_level(1, @_);
   SDL::Constants->export_to_level(1);
 }
-$VERSION = '2.2.2.11';
+$VERSION = '2.2.3.1';
 
 print "$VERSION" if (defined($ARGV[0]) && ($ARGV[0] eq '--SDLperl'));
 
@@ -101,6 +101,52 @@ and Perl.  This document describes the low-level functional SDL_perl API.  For t
 object oriented programming interface please see the documentation provided on a
 per class basis.
 
+=head1 The SDL Perl 2009 Development Team
+
+=head2 Documentation
+
+       Nick: magnet
+
+=head2 Perl Development
+
+       Nick: Garu
+       Name: Breno G. de Oliveira
+       
+       Nick: Dngor
+       Name: Rocco Caputo
+
+       Nick: nferraz
+       Name: Nelson Ferraz
+
+       Nice: acme
+       Name: Leon Brocard
+
+=head2 Maintainance 
+       
+       Nick: kthakore
+       Name: Kartik Thakore
+
+=head1 MacOSX Experimental Usage
+
+Please get libsdl packages from Fink
+       
+       perl Build.PL
+       perl Build test
+       perl Build bundle
+       perl Build install
+
+=head2 Running SDL Perl Scripts in MacOSX
+
+First set the PERL5LIB environment variable to the dependencies of your script
+       
+       %export PERL5LIB=$PERL5LIB:./lib
+
+Use the SDLPerl executable made in the bundle and call your scripts
+
+       %SDLPerl.app/Contents/MacOS/SDLPerl yourScript.pl
+
+=head1 Functions exported by SDL.pm
+
 =head2 Init(flags) 
 
 As with the C language API, SDL_perl initializes the SDL environment through
@@ -108,6 +154,7 @@ the C<SDL::Init> subroutine.  This routine takes a mode flag constructed through
 the bitwise OR product of the following functions:  
 
 =over 4
+
 =item *
 INIT_AUDIO()
 
@@ -262,7 +309,7 @@ C<SDL::CDStop> will stop CD playback if playing.
 
 =head2 CDEject(cd) 
 
-This function will eject the CD
+This function will eject the CD.
 
 =head2 CDClose(cd) 
 
@@ -270,24 +317,80 @@ This function will release an opened CD.
 
 =head2 CDNumTracks 
 
+This function return the number of tracks on a CD,
+it take a SDL_CD as first parameter.
+
 =head2 CDCurTrack 
 
+This function return the number of the current track on a CD,
+it take a SDL_CD as first parameter.
+
 =head2 CDCurFrame 
 
+this function return the frame offset within the current track on a CD.
+it take a SDL_CD as first parameter.
+
 =head2 CDTrack 
 
+CDtrack stores data on each track on a CD, its fields should be pretty self explainatory.
+CDtrack take a SDL::CD as input and  return a SDL_CDTrack. 
+
 =head2 PumpEvents 
 
+Pumps the event loop, gathering events from the input devices.
+
+PumpEvents gathers all the pending input information from devices and places
+it on the event queue.
+Without calls to PumpEvents no events would ever be placed on the queue.
+Often the need for calls to PumpEvents is hidden from the user 
+since L</ PollEvent> and WaitEvent implicitly call PumpEvents. 
+However, if you are not polling or waiting for events (e.g. you are filtering them), 
+then you must call PumpEvents to force an event queue update.
+PumpEvents doesn't return any value and doesn't take any parameters.
+
+Note: You can only call this function in the thread that set the video mode. 
+
 =head2 NewEvent 
 
+Create a new event.It return a SDL::Event.
+
 =head2 FreeEvent
 
+FreeEvent delete the SDL::Event given as first parameter.
+it doesn't return anything.
+
 =head2 PollEvent 
 
+Polls for currently pending events.
+If event is not undef, the next event is removed from the queue and returned as a L< SDL::Event>.
+As this function implicitly calls L</ PumpEvents>, you can only call this function in the thread that set the video mode. 
+it take a SDL::Event as first parameter.
+
 =head2 WaitEvent 
 
+Waits indefinitely for the next available event, returning undef if there was an error while waiting for events,
+a L< SDL::Event> otherwise.
+If event is not NULL, the next event is removed.
+As this function implicitly calls L</ PumpEvents>, you can only call this function in the thread that set the video mode. 
+WaitEvent take a SDL::Event as first parameter.
+
 =head2 EventState 
 
+This function allows you to set the state of processing certain event types.
+
+it take an event type as first argument, and a state as second.
+
+If state is set to SDL_IGNORE, that event type will be automatically 
+dropped from the event queue and will not be filtered.
+If state is set to SDL_ENABLE, that event type will be processed 
+normally.
+If state is set to SDL_QUERY, SDL_EventState will return the current 
+processing state of the specified event type.
+
+A list of event types can be found in the L</ SDL_Event section>. 
+
+it returns a state(?).
+
 =head2 IGNORE 
 
 =head2 ENABLE 
@@ -312,10 +415,18 @@ This function will release an opened CD.
 
 =head2 EventType 
 
+EventType return the type of the SDL::Event given as first parameter.
+
 =head2 ActiveEventGain 
 
+ActiveEventGain return the active gain from the SDL::Event given as first parameter.
+see L</ SDL::Event> for more informations about the active state. 
+
 =head2 ActiveEventState 
 
+ActiveEventState return the active state from the SDL::Event given as first parameter.
+see L</ SDL::Event> for more informations about the active state. 
+
 =head2 APPMOUSEFOCUS 
 
 =head2 APPINPUTFOCUS 
@@ -324,6 +435,9 @@ This function will release an opened CD.
 
 =head2 KeyEventState
 
+KeyEventState return the active key state from the SDL::Event given as first parameter.
+see L</ SDL::Event> for me more informations about the active key.
+
 =head2 SDLK_BACKSPACE 
 
 =head2 SDLK_TAB 
@@ -616,10 +730,19 @@ This function will release an opened CD.
 
 =head2 KeyEventSym 
 
+KeyEventSym return the key pressed/released  information from the SDL::Event given as first parameter.
+see L</ SDL::Event> for more informations about the keyboard events. 
+
 =head2 KeyEventMod 
 
+KeyEventMod return the mod keys pressed information from the SDL::Event given as first parameter.
+see L</ SDL::Event> for more informations about the keyboard events. 
+
 =head2 KeyEventUnicode 
 
+KeyEventMod return the unicode translated keys pressed/released information from the SDL::Event given as first parameter.
+see L</ SDL::Event> for more informations about the keyboard events. 
+
 =head2 KeyEventScanCode 
 
 =head2 MouseMotionState 
@@ -664,385 +787,4 @@ This function will release an opened CD.
 
 =head2 SurfaceBitsPerPixel 
 
-=head2 SurfaceBytesPerPixel 
-
-=head2 SurfaceRshift 
-
-=head2 SurfaceGshift 
-
-=head2 SurfaceBshift 
-
-=head2 SurfaceAshift 
-
-=head2 SurfaceRmask
-
-=head2 SurfaceGmask 
-
-=head2 SurfaceBmask 
-
-=head2 SurfaceAmask 
-
-=head2 SurfaceColorKey 
-
-=head2 SurfaceAlpha
-
-=head2 SurfaceW 
-
-=head2 SurfaceH 
-
-=head2 SurfacePitch 
-
-=head2 SurfacePixels 
-
-=head2 SurfacePixel 
-
-=head2 MUSTLOCK 
-
-=head2 SurfaceLock 
-
-=head2 SurfaceUnlock 
-
-=head2 GetVideoSurface 
-
-=head2 VideoInfo 
-
-=head2 NewRect 
-
-=head2 FreeRect 
-
-=head2 RectX 
-
-=head2 RectY 
-
-=head2 RectW 
-
-=head2 RectH 
-
-=head2 NewColor 
-
-=head2 ColorR 
-
-=head2 ColorG 
-
-=head2 CologB 
-
-=head2 FreeColor 
-
-=head2 NewPalette 
-
-=head2 PaletteNColors 
-
-=head2 PaletteColors 
-
-=head2 SWSURFACE 
-
-=head2 HWSURFACE 
-
-=head2 ANYFORMAT 
-
-=head2 HWPALETTE 
-
-=head2 DOUBLEBUF 
-
-=head2 FULLSCREEN 
-
-=head2 ASYNCBLIT 
-
-=head2 OPENGL 
-
-=head2 HWACCEL 
-
-=head2 VideoModeOK 
-
-=head2 SetVideoMode 
-
-=head2 UpdateRects 
-
-=head2 Flip 
-
-=head2 SetColors 
-
-=head2 MapRGB (surface,r,g,b)
-
-C<SDL::MapRGB> translates the composite red (r), green (g), blue (b)
-colors according to the given surface to a interger color value.  This
-integer can be used in functions like C<SDL::FillRect>, and is not
-the same as the format independent Color object returned by C<SDL::NewColor>.
-
-=head2 MapRGBA (surface,r,g,b,a)
-
-C<SDL::MapRGBA> works as C<SDL::MapRGB> but takes an additional alpha (a)
-component for semi-transperant colors.
-
-=head2 GetRGB 
-
-=head2 GetRGBA 
-
-=head2 SaveBMP 
-
-=head2 SetColorKey 
-
-=head2 SRCCOLORKEY 
-
-=head2 RLEACCEL 
-
-=head2 SRCALPHA 
-
-=head2 SetAlpha 
-
-=head2 DisplayFormat 
-
-=head2 BlitSurface 
-
-=head2 FillRect(surface,rect,color)
-       
-C<SDL::FillRect> draws a solid rectangle of color on the given surface.
-If the rectangle is NULL, the entire surface will be painted.
-
-=head2 WMSetCaption 
-
-=head2 WMGetCaption 
-
-=head2 WMSetIcon 
-
-=head2 WarpMouse 
-
-=head2 NewCursor 
-
-=head2 FreeCursor 
-
-=head2 SetCursor 
-
-=head2 GetCursor 
-
-=head2 ShowCursor 
-
-=head2 NewAudioSpec 
-
-=head2 FreeAudioSpec 
-
-=head2 AUDIO_U8 
-
-=head2 AUDIO_S8 
-
-=head2 AUDIO_U16 
-
-=head2 AUDIO_S16 
-
-=head2 AUDIO_U16MSB 
-
-=head2 AUDIO_S16MSB 
-
-=head2 NewAudioCVT 
-
-=head2 FreeAudioCVT 
-
-=head2 ConvertAudioData 
-
-=head2 OpenAudio 
-
-=head2 PauseAudio 
-
-=head2 UnlockAudio 
-
-=head2 CloseAudio 
-
-=head2 FreeWAV 
-
-=head2 LoadWAV 
-
-=head2 MixAudio 
-
-=head2 MIX_MAX_VOLUME 
-
-=head2 MIX_DEFAULT_FREQUENCY 
-
-=head2 MIX_DEFAULT_FORMAT 
-
-=head2 MIX_DEFAULT_CHANNELS 
-
-=head2 MIX_NO_FADING 
-
-=head2 MIX_FADING_OUT 
-
-=head2 MIX_FADING_IN 
-
-=head2 MixOpenAudio 
-
-=head2 MixAllocateChannels 
-
-=head2 MixQuerySpec 
-
-=head2 MixLoadWAV 
-
-=head2 MixLoadMusic 
-
-=head2 MixQuickLoadWAV 
-
-=head2 MixFreeChunk
-
-=head2 MixFreeMusic 
-
-=head2 MixSetPostMixCallback 
-
-=head2 MixSetMusicHook 
-
-=head2 MixSetMusicFinishedHook 
-
-=head2 MixGetMusicHookData 
-
-=head2 MixReverseChannels 
-
-=head2 MixGroupChannel 
-
-=head2 MixGroupChannels 
-
-=head2 MixGroupAvailable 
-
-=head2 MixGroupCount 
-
-=head2 MixGroupOldest 
-
-=head2 MixGroupNewer 
-
-=head2 MixPlayChannel 
-
-=head2 MixPlayChannelTimed 
-
-=head2 MixPlayMusic 
-
-=head2 MixFadeInChannel 
-
-=head2 MixFadeInChannelTimed 
-
-=head2 MixFadeInMusic 
-
-=head2 MixVolume 
-
-=head2 MixVolumeChunk 
-
-=head2 MixVolumeMusic 
-
-=head2 MixHaltChannel 
-
-=head2 MixHaltGroup 
-
-=head2 MixHaltMusic 
-
-=head2 MixExpireChannel 
-
-=head2 MixFadeOutChannel 
-
-=head2 MixFadeOutGroup 
-
-=head2 MixFadeOutMusic 
-
-=head2 MixFadingMusic
-
-=head2 MixFadingChannel
-
-=head2 MixPause 
-
-=head2 MixResume 
-
-=head2 MixPaused 
-
-=head2 MixPauseMusic 
-
-=head2 MixResumeMusic 
-
-=head2 MixRewindMusic 
-
-=head2 MixPausedMusic 
-
-=head2 MixPlaying
-
-=head2 MixPlayingMusic
-
-=head2 MixCloseAudio 
-
-=head2 NewFont 
-
-=head2 UseFont 
-
-=head2 PutString 
-
-=head2 TextWidth 
-
-=head2 GL_RED_SIZE 
-
-=head2 GL_GREEN_SIZE 
-
-=head2 GL_BLUE_SIZE 
-
-=head2 GL_ALPHA_SIZE 
-
-=head2 GL_ACCUM_RED_SIZE 
-
-=head2 GL_ACCUM_GREEN_SIZE 
-
-=head2 GL_ACCUM_BLUE_SIZE 
-
-=head2 GL_ACCUM_ALPHA_SIZE 
-
-=head2 GL_BUFFER_SIZE 
-
-=head2 GL_DEPTH_SIZE 
-
-=head2 GL_STENCIL_SIZE 
-
-=head2 GL_DOUBLEBUFFER 
-
-=head2 GL_SetAttribute 
-
-=head2 GL_GetAttribute 
-
-=head2 GL_SwapBuffers 
-
-=head2 BigEndian 
-
-=head2 NumJoysticks 
-
-=head2 JoystickName 
-
-=head2 JoystickOpen 
-
-=head2 JoystickOpened 
-
-=head2 JoystickIndex 
-
-=head2 JoystickNumAxes 
-
-=head2 JoystickNumBalls 
-
-=head2 JoystickNumHats 
-
-=head2 JoystickNumButtons 
-
-=head2 JoystickUpdate 
-
-=head2 JoystickGetAxis 
-
-=head2 JoystickGetHat 
-
-=head2 JoystickGetButton 
-
-=head2 JoystickGetBall 
-
-=head2 JoystickClose 
-
-=head1 AUTHOR
-
-David J. Goehrig
-
-=head1 CONTRIBUTORS
-
-David J. Goehrig, Wayne Keenan, Guillaume Cottenceau
-
-=head1 SEE ALSO
-
-       perl(1) SDL::App(3) SDL::Surface(3) SDL::Event(3) SDL::Rect(3) 
-       SDL::Palette(3) SDL::Mixer(3) SDL::Cdrom(3)
-
-=cut
-
+=head2 SurfaceBy