##############################################################################
SDL::App::FPS - base/parent class for frame rate centric SDL/OpenGL apps
This base class can be easy subclassed for your own projects. It is a basic
building block for building SDL/OpenGL applications that need a fast framerate
with event handling before each frame.
In examples/, there are quite a few examples, including a Mandelbrot Fractal
drawing program for your perusal.
Features
========
* Easy config file reading and command line parsing.
* Both SDL and OpenGL support.
* Framerate monitoring, so you can adjust the scene complexity in real-time
* Capping the framerate, even with the inaccurate timer delays
* event handling in between frames (very fast response to user action) which
means you don't need locking since events always occur at definite times
* Decoupling of the animaition speed from the framerate by using an extra clock
(meaning the animation has the same speed, independed from the current frame
rate)
* Time warp of the clock (see above): the clock can be warped by a factor,
which can even be changed on a frame-by-frame basis. This allows effects
like slow motion or fast forward, complete with ramping (e.g. slowly slowing
down). The clock can even go backwards!
* Has timers that are syncronized with the warped clock and only expire at
the start of each frame (and not in-mid frame). Their overshot value still
allows you to determine the exact time the timer should have fired, so you
can correct for this.
* Of course, for really real-time events (like starting the next musik track)
you can still use the normal SDL timers.
* Buttons: Mouse sensitive areas of rectangular, circular or elliptic shape
that react to mouse clicks, mouse going in or out or hovering over the area
* Convenience methods for setting up event handlers for often used events and
for accessing often used colors (SDL::App::FPS::Color)
This setup allows you to get away without any locking or worry about the
simulation code removing and object that is currently drawn or something
along these lines.
Check out the examples, they show you how simple it is to use this framework!
Installation
============
* You need at least SDL for Perl and SDL itself from
.
* Warning! v0.18 needs at least SDL_perl v1.20.2 which is not an official
release (but a fork by me) and can be found at:
http://bloodgate.com/perl/sdl/sdl_perl.html
SDL_perl 2.0 beta2 (current as I write this) does _not_ work!
* untar/ungzip the package (replace 0.18 with the version you got)
tar -xzf SDL-App-FPS-0.18.tar.gz
* Check the signature. Download my key from http://bloodgate.com/tels.asc or
from my CPAN directory. Then do in the build directory (where you unwrapped
stuff):
cpansign -v
* if the signature verifies OK, proceed. Otherwise NOTIFY ME IMMIDIATELY. Do
NOT INSTALL THE PACKAGE! Your system might get compromised!
* Build the make file:
perl Makefile.PL
* Make the project
make
* Run the tests:
make test
* If some tests fail, please notify me.
* If all tests pass, install as root:
su
[enter password]
make install
exit
Go to the example/ directory and run the example applications for fun. Enjoy!
Usage
=====
Look at the files in t/ (MyFPS.pm and myfpm.t) and the examples for how to
use it. Read the documentation with
perldoc SDL::App::FPS
after installing this package.
Please send me test-reports, your experiences with this and your ideas - I love
to hear about my work!
Tels