The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

SDL::OpenGL::App - Glut like wrapper for SDL OpenGL apps

SYNOPSIS

 use SDL::OpenGL::App;
 
 my $app=new SDL::OpenGL::App;

 $app->app_name("Gears");

 $app->register_handler(init    => \&init,
                        draw    => \&draw,
                        events  => \&events,
                        idle    => \&idle,
                        reshape => \&reshape,
                       );
 
 
 $app->run();

DESCRIPTION

METHODS

   new
   add_startup_parameter
   add_runtime_help
   register_handler
   pointer_show
   run
   pump
   screendump
   
   app_name
   screen_width
   screen_height
   fullscreen
   fps
   glinfo

   red_size
   green_size
   blue_size
   depth_size
   doublebufer

   Package utility methods:

   read_texture
   rle_enc
   rle_dec
=head1 EXAMPLES

QUICK DEMO/TEST

Running the in-built demo/test:

run perl with the 'e' flag to execute these one liners:

'use SDL::OpenGL::App; new SDL::OpenGL::App->run'

same, but in fullscreen mode:

'use SDL::OpenGL::App; $g=new SDL::OpenGL::App; $g->fullscreen(1); $g->run'

PUMPING

'Pumping' the SDL::OpenGL::App processing loop, step by step:

Make use of the 'pump' function, say, when called from a Gtk Idle loop for instance:

my $gl_app=new SDL::OpenGL::App ;

#register handlers/help as normal

my $stay_alive=1; while ($stay_alive) { my $gl_rc=$gl_app->pump(); #returns FALSE when 'reasons to leave' detected

   $stay_alive=0 unless $gl_rc;
  }

MAKE A MOVIE!

   NOTE:: currently (as from V1.06) only RAW PPM files are generated, but
   then SDL::OpenGL::App can only read ASCII/RAW PPM file anyway, for now.

   To create a series of screenshots to build a movie, e.g. to build
   OpenGL looking graphics for a 'flatter' application(s) (game/web/etc..):


 #do things as usual, then

 my $frame=0;
 my $frame_ext_format="%d"; #you may want leading 8 zeros hex, e.g, : "%08x"
 sub idle 
   {
    
    #..do your 'Idle' stuff..
    
    $gl_app->screendump(FILE_NAME=>"movie/gear.".sprintf($frame_ext_format,$frame++));
   }

to playback the movie, one quick way is to use the 'animate' program from ImageMagick:

$ animate movie/gear.*

Furthermore, you could then use 'read_texture' to read them all/it back in, to be used as a (possibly animated) bill board, or drop OpenGL mode and then use them in 2D SDL Surfaces, you choose.

For more examples please have a look inside the directory: 'examples/openGL/Glut'

TODO

BUGS

AUTHOR

   Wayne Keenan               wayne@metaverse.fsnet.co.uk

   Copyright (c) 2000 Wayne Keenan. All rights reserved.
   This program is free software; you can redistribute it
   and/or modify it under the same terms as Perl itself.

VERSION

   Version 0.02     (05 Aug 2000)

SEE ALSO

   perl(1) SDL::App SDL::OpenGL