X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pages%2FSDLx-App.html-inc;h=6c6b72f37b6ea5488146882b0463fc9da97f6fd0;hb=3afd3fb0984d2df0ce491f16546fbfa9b5454990;hp=ca61336f28932d06fbbaa4afc879c4de4dbd07d3;hpb=c7e8d3c612049580c9a96b3006c4c89a00410643;p=sdlgit%2FSDL-Site.git diff --git a/pages/SDLx-App.html-inc b/pages/SDLx-App.html-inc index ca61336..6c6b72f 100644 --- a/pages/SDLx-App.html-inc +++ b/pages/SDLx-App.html-inc @@ -5,10 +5,12 @@
An alternative to the manual Event processing is the SDLx::App::loop.
- - -An alternative to the manual Event processing is through the SDLx::Controller module. SDLx::App is a Controller so see the CALLBACKS section below. +=head1 DESCRIPTION
SDLx::App controls the root window of the of your SDL based application. It extends the SDL::Surface class, and provides an interface to the window manager oriented functions.
@@ -105,9 +104,9 @@ Any flags you want to pass to SDL::Video upon initi Set this to a true value to make the window resizeable by the user. Default is off. - - - +SDLx::App::loop
is a simple event loop method which takes a reference to a hash
-of event handler subroutines. The keys of the hash must be SDL event types such
-as SDL_QUIT(), SDL_KEYDOWN(), and the like. When called, the event method recieves
-as its parameter the event object used in the loop.
Example:
-my $app = SDLx::App->new( - title => "test.app", - width => 800, - height => 600, - depth => 32 - ); - - my %actions = ( - SDL_QUIT() => sub { exit(0); }, - SDL_KEYDOWN() => sub { print "Key Pressed" }, - ); - - $app->loop( \%actions ); - -- -
SDLx::App::sync
encapsulates the various methods of syncronizing the screen with the
@@ -209,7 +184,32 @@ or OpenGL buffer if applicable. This is prefered to calling flip on the applicat
SDLx::App::attribute
allows one to get and set GL attributes. By passing a value
in addition to the attribute selector, the value will be set. SDL:::App::attribute
-always returns the current value of the given attribute, or croaks on failure.
SDLx::App
is a SDLx::Controller
. Use the event, show and handlers to run the app.
use SDL; + use SDLx::App; + + use SDL::Event; #Where ever the event call back is processed + + my $app = SDLx::App->new( width => 200, height => 200); + + $app->add_event_handler( sub{ return 0 if $_[0]->type == SDL_QUIT; return 1}); + + $app->add_show_handler( sub{ $app->update() } ); + + $app->add_move_handler( + sub{ + #calc your physics here + } ); + + $app->run(); + ++
see SDLx::Controller for more details.