glpresent - A presentation in GL
Introduction
glpresent is a simple presentation tool. It reads lists of PNG files and displays them. Keys can be used to move forward and backward.
glpresent is much the same as pspresent, except with cool transitions :)
Dependencies
GL
libpng
Installation
make
Usage
glpresent <list of PNG files>
- example
- ./glpresent presentation/*.png
Creating PNG Files
PNG files can be created from postscript slide series using ghostscript.
- example
- gs -dSAFER -dBATCH -dNOPAUSE -dTextAlphaBits=4 -dGraphicsAlphaBits=4 \
-r85 -q -sDEVICE=pngalpha -sOutputFile=icfp-pg%02d.png icfp.ps
This will produce a series of PNG files icfp-pgNN.png. These can then be used as parameters to glpresent. The images will be nicely anti-aliased and have transparency.
The -rN option specifies the resolution. Default resolution of gs is 72, and an image will be output at size specified in the postscript bounding box. The closer output images will look better the closer they are to 1024 pixels wide (the internal resolution used by glpresent).
The -sOutputFile option specifies the output name. %02d gives you two zero-filed places in the name.
The final argument is the name of the postscript file to convert.
Keys
q - quit
f - toggle fullscreen
<space> - move to next page
<backspace> - move to previous page
B - bullet-time debug. Animations are moved forward and back frame by frame
l - use linear filtering on textures (default)
n - use nearest filter. Faster, looks good at 1:1 res. Looks crap otherwise.
1 - move to previous frame in animation (must be started first with fwd/back)
2 - move to next frame in animation (must be started first with fwd/back)
Wishlist
The big TODO list for this project:
- mipmaps for nicer display
- optional realtime input from ghostscript
- index/content sheets to jump directly to slides
- more cool transitions :)
- automagic flip between linear and nearest filtering
- reading presentation config files for specific transitions, overlays etc.
- embed 3D objects in the middle of the scene for branding
- on-the-fly colour adjustment for crappy projectors
- roller-door
- zoom
License
glpresent is licensed as `goatware'. You can do pretty much what you like with it, so long as you retain this banner and attribution to the original author. If you have a pet goat, perhaps you'd like to send me a photo?
Copyright Charles Gray, 2004.
