X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fdocs%2FApp.pod;fp=lib%2Fdocs%2FApp.pod;h=0b297d37737e2e25fc960ebc25affc9999f44fc1;hb=896b04ee008898e1c1edbdd432bedaa8643400dc;hp=0000000000000000000000000000000000000000;hpb=b3cdeb39a431b026168c4060bf74001fcee07493;p=sdlgit%2FSDL_perl.git diff --git a/lib/docs/App.pod b/lib/docs/App.pod new file mode 100644 index 0000000..0b297d3 --- /dev/null +++ b/lib/docs/App.pod @@ -0,0 +1,177 @@ +=pod + +=head1 NAME + +SDL::App - a SDL perl extension + +=head1 SYNOPSIS + + use SDL; + use SDL::Event; + use SDL::App; + + my $app = new SDL::App ( + -title => 'Application Title', + -width => 640, + -height => 480, + -depth => 32 ); + +This is the manual way of doing things + + my $event = new SDL::Event; # create a new event + + $event->pump(); + $event->poll(); + + while ($event->wait()) { + my $type = $event->type(); # get event type + print $type; + exit if $type == SDL_QUIT; + } +An alternative to the manual Event processing is the L . + +=head1 DESCRIPTION + +L controls the root window of the of your SDL based application. +It extends the L class, and provides an interface to the window +manager oriented functions. + +=head1 METHODS + +=head2 new + +C initializes the SDL, creates a new screen, +and initializes some of the window manager properties. +C takes a series of named parameters: + +=over 4 + +=item * + +-title + +=item * + +-icon_title + +=item * + +-icon + +=item * + +-width + +=item * + +-height + +=item * + +-depth + +=item * + +-flags + +=item * + +-resizeable + +=back + +=head2 title + +C takes 0, 1, or 2 arguments. It returns the current +application window title. If one parameter is passed, both the window +title and icon title will be set to its value. If two parameters are +passed the window title will be set to the first, and the icon title +to the second. + +=head2 delay + +C takes 1 argument, and will sleep the application for +that many ms. + +=head2 ticks + +C returns the number of ms since the application began. + +=head2 error + +C returns the last error message set by the SDL. + +=head2 resize + +C takes a new height and width of the application +if the application was originally created with the -resizable option. + +=head2 fullscreen + +C toggles the application in and out of fullscreen mode. + +=head2 iconify + +C iconifies the applicaiton window. + +=head2 grab_input + +C can be used to change the input focus behavior of +the application. It takes one argument, which should be one of the following: + +=over 4 + +=item * +SDL_GRAB_QUERY + +=item * +SDL_GRAB_ON + +=item * +SDL_GRAB_OFF + +=back + +=head2 loop + +C 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. The event method recieves as its parameter +the event object used in the loop. + + Example: + + my $app = new SDL::App -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); + +=head2 sync + +C encapsulates the various methods of syncronizing the screen with the +current video buffer. C will do a fullscreen update, using the double buffer +or OpenGL buffer if applicable. This is prefered to calling flip on the application window. + +=head2 attribute ( attr, [value] ) + +C allows one to set and get GL attributes. By passing a value +in addition to the attribute selector, the value will be set. C +always returns the current value of the given attribute, or croaks on failure. + +=head1 AUTHOR + +David J. Goehrig +Kartik Thakore + +=head1 SEE ALSO + +L L L L + +=cut