X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pages%2FSDL.html-inc;h=97e9cba647c2f78499a4a7bbb9d6b219081e9e80;hb=879fff64432f43c80083c7b45da72611be9dca4b;hp=99b926e7a7586f0c66836895d286273919b6e0b1;hpb=9b105a174c47bf270f320086452ef5d26c53fe35;p=sdlgit%2FSDL-Site.git diff --git a/pages/SDL.html-inc b/pages/SDL.html-inc index 99b926e..97e9cba 100644 --- a/pages/SDL.html-inc +++ b/pages/SDL.html-inc @@ -2,28 +2,36 @@
SDL - Simple DirectMedia Layer for Perl
-Core
use SDL ':all'; +use SDL;
SDL_perl is a package of perl modules that provides both functional and object orient -interfaces to the Simple DirectMedia Layer for Perl 5. This package does take some -liberties with the SDL API, and attempts to adhere to the spirit of both the SDL -and Perl. This document describes the low-level functional SDL_perl API. For the -object oriented programming interface please see the documentation provided on a -per class basis.
- -SDL_perl is a package of Perl modules that provide both functional and object oriented interfaces to the Simple DirectMedia Layer for Perl 5. +This package takes some liberties with the SDL API, and attempts to adhere to the spirit of both the SDL and Perl. +This document describes the low-level functional SDL Perl API. +For the object oriented programming interface please see the documentation provided on a per-class basis.
As with the C language API, SDL_perl initializes the SDL environment through
-the SDL::init
subroutine. This routine takes a mode flag constructed through
-the bitwise OR product of the SDL_INIT_* constants.
The constants are not exported by default. You can export them into your namespace by doing:
+The constants are not exported by default. You can export them by doing:
use SDL ':all';@@ -74,125 +73,252 @@ the bitwise OR product of the SDL_INIT_* constants.
or by choosing the export tags below:
Export tag: ':init'
-SDL::Init
returns 0 on success, or -1 on error.
After SDL has been initialized with SDL::init you may initialize uninitialized subsystems with SDL::init_subsystem. -The flags parameter is the same as that used in SDL::init.
-SDL::init_subsystem returns 0 on success, or -1 on error.
- -SDL::quit_subsystem allows you to shut down a subsystem that has been previously initialized by SDL::init or SDL::init_subsystem. -The flags tells SDL::quit_subSystem which subsystems to shut down, it uses the same values that are passed to SDL::init.
-SDL::quit_subsystem doesn't returns any value.
+SDL_INIT_AUDIO + SDL_INIT_VIDEO + SDL_INIT_CDROM + SDL_INIT_EVERYTHING + SDL_INIT_NOPARACHUTE + SDL_INIT_JOYSTICK + SDL_INIT_TIMER + ++ +
SDL::init( $flags ); + ++
As with the C language API, SDL Perl initializes the SDL environment with the SDL::init
subroutine.
+This routine takes a mode flag constructed through the bitwise OR product of the SDL_INIT_*
constants.
+The $flags
tell SDL::init
which subsystems to initialize.
SDL::init(SDL_INIT_AUDIO | SDL_INIT_JOYSTICK); + ++
SDL::init
returns 0
on success, or -1
on error.
SDL::init_subsystem( $flags ); + ++
After SDL has been initialized with SDL::init
you may initialize any uninitialized subsystems with SDL::init_subsystem
.
+The $flags
tell SDL::init_subsystem
which subsystems to initialize, and are taken in the same way as SDL::init
.
SDL::init_subsystem
returns 0
on success, or -1
on error.
SDL::quit_subsystem( $flags ); + ++
SDL::quit_subsystem
allows you to shut down a subsystem that has been previously initialized by SDL::init
or SDL::init_subsystem
.
+The $flags
tell SDL::quit_subsystem
which subsystems to shut down, and are taken in the same way as SDL::init
.
SDL::quit_subsystem
doesn't return any values.
Shuts down all SDL subsystems, unloads the dynamically linked library and frees the allocated resources.
-Note: This will be called automatically when perl exits. You don't need to call this, except you want to initialize SDL after this again.
-SDL::quit doesn't returns any value.
+SDL::quit; + ++
SDL::quit
Shuts down all SDL subsystems, unloads the dynamically linked library and frees the allocated resources.
Note: This will be called automatically when Perl exits. You don't need to call this, except if you want to initialize SDL again after this.
+SDL::quit
doesn't return any values.
SDL::was_init allows you to see which SDL subsytems have been initialized. -flags is a bitwise OR'd combination of the subsystems you wish to check (see SDL::init for a list of subsystem flags). -If 'flags' is 0 or SDL_INIT_EVERYTHING, it returns a mask of all initialized subsystems (this does not include SDL_INIT_EVENTTHREAD or SDL_INIT_NOPARACHUTE).
+my $flags = SDL::was_init( $flags ); + ++
SDL::was_init
allows you to see which SDL subsytems have been initialized.
+The $flags
tell SDL::was_init
which subsystems to check, and are taken in the same way as SDL::init
.
SDL::was_init
returns a mask of the initialized subsystems it checks.
+If $flags
is 0
or SDL_INIT_EVERYTHING
, a mask of all initialized subsystems will be returned (this does not include SDL_INIT_EVENTTHREAD
or SDL_INIT_NOPARACHUTE
).
use SDL ':all'; + + my $mask = SDL::was_init(SDL_INIT_AUDIO | SDL_INIT_JOYSTICK); + if($mask & SDL_INIT_AUDIO and $mask & SDL_INIT_JOYSTICK) { + # Both subsystems are initialized! + } + +
The last error message set by the SDL library can be retrieved using the subroutine
-SDL::get_error
, which returns a scalar containing the text of the message if any.
my $error = SDL::get_error; + ++
Returns a scalar value containing the last error message set by the SDL library (if any).
SDL::set_error_real sets the SDL error to a printf style formatted string. -it doesn't returns any values.
+SDL::set_error_real( $printf_format, @values ) + ++
SDL::set_error_real
sets the SDL error to a printf
style formatted string.
SDL::set_error_real
doesn't return any values.
SDL::clear_error deletes all information about the last SDL error. Useful if the error has been handled by the program. -it doesn't returns any value.
+SDL::clear_error; + ++
SDL::clear_error
deletes all information about the last SDL error.
+This is useful if the error has been handled by the program.
SDL::clear_error
doesn't return any values.
my $version = SDL::version(); +my $version = SDL::version;-Returns an SDL::Version object of the of the SDL library at compile time.
-Example:
+Returns an
SDL::Version
object of the SDL library at compile-time.use SDL; use SDL::Version; - my $v = SDL::version(); + my $v = SDL::version; printf("got version: %d.%d.%d\n", $v->major, $v->minor, $v->patch); - - -
my $linked_version = SDL::linked_version(); ++ +
SDL::linked_version
works in the same way asSDL::version
, but returns anSDL::Version
object of the SDL library at link-time.
my $ticks = SDL::get_ticks;-
Returns an SDL::Version object of the currently loaded SDL library.
-Example:
-use SDL; - use SDL::Version; +Returns the number of milliseconds since SDL library initialization. +This value wraps around if the program runs for more than 49.7 days
- my $v = SDL::linked_version(); - printf("got version: %d.%d.%d\n", $v->major, $v->minor, $v->patch); +
my $win32_handle = SDL::get_handle;+
A video surface must be inited to get a handle.
The last error message set by the SDL library can be retrieved using the subroutine
-SDL::get_error
, which returns a scalar containing the text of the message if any.
SDL::delay( $ms ); -
SDL::delay(1000); ++
SDL::delay
waits the specified number of milliseconds before returning.
+The actual delay may be longer than specified depending on the underlying OS.
SDL::delay
doesn't return anything.
# Delay for half a second + SDL::delay(500);-
This subroutine allows an application to delay further operations for atleast a -number of milliseconds provided as the argument. The actual delay may be longer -than the specified depending on the underlying OS.
+ +A new book has been started to provide a complete tutorial for SDL. See http://bit.ly/hvxc9V.
magnet, kthakore + +
David J. Goehrig
+ +Kartik Thakore (kthakore)
+Tobias Leich (FROGGS)
+ +The following people have dedicated blood sweat and tears to making SDL Perl possible.
+See the impact graph on our github repository.
+Andy Bakun <sdlperl@thwartedefforts.org>
+Benedikt Meurer <bmeurer@fwdn.de>
+Blaise Roth (Blaizer) <blaizer@cpan.org>
+Breno G. de Oliveira (garu)
+Brian Cassidy (bricas)
+chromatic <chromatic@wgz.org>
+Daniel Mantovani <daniel.oliveira.mantovani@gmail.com>
+Daniel Ruoso http://daniel.ruoso.com/
+David J. Goehrig <dgoehrig@cpan.org>
+Dustin Mays (dorkfish) <dork.fish.wat.@gmail.com>
+Fedora
+Gabor Szabo (szabgab) <szabgab@gmail.com>
+Guillaue Cottenceau (gc) <gc@mandrakesoft.com>
+Heikki Meht&195;nen (hmehta/hejki) <heikki@mehtanen.fi>
+James King
+James Wright <jwright@cpan.org>
+Jeffrey T. Palmer (jtpalmer) <jeffrey.t.palmer@gmail.com>
+Kartik Thakore (kthakore) <thakore.kartik@gmail.com>
+KatrinaTheLamia
+kmx <kmx@cpan.org>
+Luke
+Michael Lamertz <mike@perl-ronin.de>
+morgoth.666
+Peter BARABAS <z0d@artifact.hu>
+Russell Valentine <russ_allegro@yahoo.com>
+Ryan Hanlon
+Stephane Desneux <sdx@desneux.com>
+Tels <http://www.bloodgate.com>
+Thomas Tongue
+Tobias Leich (FROGGS)
+Tony C
+Yuval Kogman (nothingmuch)
+Wayne Keenan <wayne@metaverse.fsnet.co.uk>
+If you would like to contribute to SDL Perl, please post a message on the mailing list:
+sdl-devel@perl.org
+And request access to the github repository. Or drop us a line on #sdl over at irc.perl.org
+ +Copyright 2002-2010 SDL Authors as listed above, all rights reserved.
+This program is free software; you can redistribute it and/or modify it +under the same terms as Perl itself.
+ +BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER +EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH +YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL +NECESSARY SERVICING, REPAIR, OR CORRECTION.
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE +LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE +THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES.