$| = 1;
$WIDTH = 1024;
$HEIGHT = 768;
- $SDLAPP = SDLx::App->new(-title => "Opengl App", -width => $WIDTH, -height => $HEIGHT, -gl => 1);
+ $SDLAPP = SDLx::App->new(title => "Opengl App", width => $WIDTH, height => $HEIGHT, gl => 1);
$SDLEVENT = SDL::Event->new;
</pre>
-<p>SDLx::App can start an OpenGL application with the parameter -gl => 1.</p>
+<p>SDLx::App can start an OpenGL application with the parameter gl => 1.</p>
<pre> glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
<p>To make sure SDL is in sync with the data. You must call SDL::Video::lock <strong>before</strong> doing PDL operations on the piddle.</p>
<pre> SDL::Video::lock_surface($surface);
- $piddle ( :, 0 : rand(400), 0 : rand(200) ) .= pdl( rand(225), rand(225), rand(255), 255 );
+ $piddle->mslice( 'X', [ rand(400), rand(400), 1 ], [ rand(200), rand(200), 1 ] )
+ .= pdl( rand(225), rand(225), rand(255), 255 );
</pre>
<p>After that you can unlock the surface to blit.</p>
<ul><li><a href="#NAME">NAME</a></li>
<li><a href="#CATEGORY">CATEGORY</a></li>
<li><a href="#RELEASES">RELEASES</a>
-<ul><li><a href="#2_500">2.500</a>
+<ul><li><a href="#2_502">2.502</a></li>
+<li><a href="#2_500">2.500</a>
</li>
</ul>
</li>
<div id="RELEASES_CONTENT">
</div>
+<h2 id="2_502">2.502</h2>
+<div id="2_502_CONTENT">
+<dl>
+ <dt>SDLx::App</dt>
+ <dd>
+ <p>Now depends on <a href="http://search.cpan.org/perldoc?SDLx::Surface">SDLx::Surface</a>. To get the SDL::Surface, use <code> -</code>surface() >. Alternatively <b>SDLx::Surface::display()</b> (<b>display</b> in <cite>SDLx::Surface</cite>).</p>
+ </dd>
+ <dt>SDLx::Surface</dt>
+ <dd>
+ <p><code> get_display </code> is now called <b>SDLx::Surface::display</b> (<b>display</b> in <cite>SDLx::Surface</cite>). </p>
+ </dd>
+ <dt>SDLx::Sprite::Animated</dt>
+ <dd>
+ <p>Has drastically changed, and is still volatile.</p>
+ </dd>
+</dl>
+
+</div>
<h2 id="2_500">2.500</h2>
<div id="2_500_CONTENT">
-
-
-
-
<dl>
<dt>SDL::App </dt>
<dd>
SDL::init(SDL_INIT_VIDEO);
+ SDL::TTF::init();
+
my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE);
- my $font = SDL::TTF::open_font('arial.ttf', '24);
+ my $font = SDL::TTF::open_font('arial.ttf', '24');
my $white = SDL::Color->new(0xFF, 0xFF, 0xFF);
my $black = SDL::Color->new(0x00, 0x00, 0x00);
my $surface = SDL::TTF::render_text_solid($font, 'Hallo!', $white, $black);
SDL::init(SDL_INIT_VIDEO);
+ SDL::TTF::init();
+
my $display = SDL::Video::set_video_mode(640, 480, 32, SDL_SWSURFACE);
- my $font = SDL::TTF::open_font('arial.ttf', '24);
+ my $font = SDL::TTF::open_font('arial.ttf', '24');
my $surface = SDL::TTF::render_text_blended($font, 'Hallo!', SDL::Color->new(0xFF,0xFF,0xFF));
SDL::Video::blit_surface($surface, SDL::Rect->new(0, 0, 640, 480), $display, SDL::Rect->new(10, 10, 640, 480));
my $app = SDLx::App->new(
- -title => "Lunar Lander",
- -width => 800,
- -height => 600,
- -depth => 32,
+ title => "Lunar Lander",
+ width => 800,
+ height => 600,
+ depth => 32,
);
<pre> use SDLx::App;
my $app = SDLx::App->new(
- -width => 640,
- -height => 480,
- -depth => 16,
+ width => 640,
+ height => 480,
+ depth => 16,
);
</pre>
-<p>You can get more creative, especially if you use the <code>-title</code> and <code>-icon</code>
+<p>You can get more creative, especially if you use the <code>title</code> and <code>icon</code>
attributes in a windowed application. Here's how to set the window title of
the application to <code>My SDL Program</code>:</p>
<pre> use SDLx::App;
my $app = SDLx::App->new(
- -height => 640,
- -width => 480,
- -depth => 16,
- -title => 'My SDL Program',
+ height => 640,
+ width => 480,
+ depth => 16,
+ title => 'My SDL Program',
);
</pre>
<p>Setting an icon is a little more involved -- you have to load an image onto a
-surface. That's a bit more complicated, but see the <code>-name</code> parameter to
+surface. That's a bit more complicated, but see the <code>name</code> parameter to
<code>SDL::Surface-</code>new()> if you want to skip ahead.</p>
</div>
use SDL::Events;
my $app = SDLx::App->new(
- -title => 'Application Title',
- -width => 640,
- -height => 480,
- -depth => 32
+ title => 'Application Title',
+ width => 640,
+ height => 480,
+ depth => 32
);
</pre>
and initializes some of the window manager properties.
<code>SDLx::App::new</code> takes a series of named parameters:</p>
<ul>
- <li>-title </li>
- <li>-icon_title </li>
- <li>-icon </li>
- <li>-width </li>
- <li>-height </li>
- <li>-depth </li>
- <li>-flags </li>
- <li>-resizeable</li>
+ <li>title </li>
+ <li>icon_title </li>
+ <li>icon </li>
+ <li>width </li>
+ <li>height </li>
+ <li>depth </li>
+ <li>flags </li>
+ <li>resizeable</li>
</ul>
<h2 id="resize">resize</h2>
<div id="resize_CONTENT">
<p><code>SDLx::App::resize</code> takes a new height and width of the application
-if the application was originally created with the -resizable option.</p>
+if the application was originally created with the resizable option.</p>
</div>
<h2 id="fullscreen">fullscreen</h2>
the event object used in the loop.</p>
<p>Example:</p>
<pre> my $app = SDLx::App->new(
- -title => "test.app",
- -width => 800,
- -height => 600,
- -depth => 32
+ title => "test.app",
+ width => 800,
+ height => 600,
+ depth => 32
);
my %actions = (
<h2 id="remove_show_handler_index">remove_show_handler( $index )</h2>
<div id="remove_show_handler_index_CONTENT">
<p>Removes the handler with the given index from the respective calling queue.</p>
+<p>You can also pass a coderef.
+The first coderef in the handler list that this matches will be removed.</p>
<p>Returns the removed handler.</p>
</div>
#Make a surface
#Select a font
- my $d = SDLx::App->new( -title => 'app', -width => 200, -height => 200, -depth => 32 );
+ my $d = SDLx::App->new( title => 'app', width => 200, height => 200, depth => 32 );
my $font = SDLx::SFont->new('t/font.png');
</li>
<li><a href="#EXTENSIONS">EXTENSIONS</a>
<ul><li><a href="#blit">blit </a></li>
+<li><a href="#blit_by">blit_by</a></li>
<li><a href="#flip">flip</a></li>
<li><a href="#update">update</a></li>
<li><a href="#draw_rect">draw_rect</a></li>
SDLx::Surface->new( width=> 400, height=>200, flags=> SDL_SWSURFACE, depth=>32, greenmask=>0xFF000000 )
# A SDL::Surface->new( SDL_ANYFORMAT, 400, 200, 32, 0, 0xFF000000,0, 0, 0 ) is loaded
-
-
-
+ SDLx::Surface->new( w => 1, h => 1, color => 0xFF0000FF )
+ # A SDL::Surface->new( SDL_ANYFORMAT, 1, 1, 32, 0, 0, 0, 0 ) is loaded
+ all pixels are colored with color (red)
</pre>
<pre> SDLx::Surface::display( width => 20, height => 20, flags=> SDL_HWSURFACE, depth=>24)
</pre>
+<p>You can also use the keys <code>w</code> and <code>h</code> in place of <code>width</code> and <code>height</code>, as with <code>new</code>.</p>
<p>Get or create the main display surface and attach to a SDLx::Surface.</p>
</div>
</pre>
<p>Blits SDLx::Surface onto $dest surface.
-$src_rect or $dest_rect are optional. $src_rect or $dest_rect can be array refs or SDL::Rect. $dest can be SDLx::Surface or SDL::Surface. </p>
+$src_rect or $dest_rect are optional. If $src_rect is ommited, it will be the size of the entire surface. If $dest_rect is ommited, it will be blitted at <code>(0, 0)</code>. $src_rect or $dest_rect can be array refs or SDL::Rect. $dest can be SDLx::Surface or SDL::Surface.</p>
<p>Returns $self</p>
</div>
+<h2 id="blit_by">blit_by</h2>
+<div id="blit_by_CONTENT">
+<pre> $sdlx_surface->blit_by( $src, $src_rect, $dest_rect );
+
+</pre>
+<p>Does the same as <code>blit</code> but the <code>SDLx::Surface</code> is the one being blitted to.
+This is useful when the surface you have isn't an <code>SDLx::Surface</code>, but the surface it is being blitted to is.</p>
+
+</div>
<h2 id="flip">flip</h2>
<div id="flip_CONTENT">
<p>Applies <a href="/SDL-Video.html#flip">SDL::Video::flip</a> to the Surface, with error checking.</p>
$sdlx_surface->draw_rect( SDL::Rect->new($x,$y,$w,$h), 0xFFFF00FF );
</pre>
-<p>Draws a rect on the surface with the given color. </p>
+<p>Draws a rect on the surface with the given color. If the rect is ommited, the colored rect will be drawn to the entire surface.</p>
<p>Returns $self</p>
</div>
$sdlx_surface->draw_line( [$x1, $y1], [$x2, $y2], \@color, $antialias); #
</pre>
-<p>Draws a line on the surface. Antialias is turned on if $antialias is defined. </p>
+<p>Draws a line on the surface. Antialias is turned on if $antialias is true. </p>
<p>Returns $self</p>
</div>
<div class="pod">
-<h1>Documentation (latest development branch)</h1><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Core</strong></td></tr><tr><td><img src="assets/SDL_thumb.png" alt="thumb" /></td><td><a href="SDL.html">SDL</a></td><td>- Simple DirectMedia Layer for Perl</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Credits.html">SDL::Credits</a></td><td>- Authors and contributors of the SDL Perl project</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Deprecated.html">SDL::Deprecated</a></td><td>- Log of Deprecated items per release</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Time.html">SDL::Time</a></td><td>- An SDL Perl extension for managing timers</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Audio</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Audio.html">SDL::Audio</a></td><td>- SDL Bindings for Audio</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-AudioCVT.html">SDL::AudioCVT</a></td><td>- Audio Conversion Structure</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-AudioSpec.html">SDL::AudioSpec</a></td><td>- SDL Bindings for structure SDL::AudioSpec</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">CDROM</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-CDROM.html">SDL::CDROM</a></td><td>- SDL Bindings for the CDROM device</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-CD.html">SDL::CD</a></td><td>- SDL Bindings for structure SDL_CD</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-CDTrack.html">SDL::CDTrack</a></td><td>- SDL Bindings for structure SDL_CDTrack</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Events</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Events.html">SDL::Events</a></td><td>- Bindings to the Events Category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Event.html">SDL::Event</a></td><td>- General event structure</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Joystick</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Joystick.html">SDL::Joystick</a></td><td>- SDL Bindings for the Joystick device</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Mouse</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Mouse.html">SDL::Mouse</a></td><td>- SDL Bindings for the Mouse device</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Cursor.html">SDL::Cursor</a></td><td>- Mouse cursor structure</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Version.html">SDL::Version</a></td><td>- SDL Bindings for structure SDL_Version</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Video</strong></td></tr><tr><td><img src="assets/Video_thumb.png" alt="thumb" /></td><td><a href="SDL-Video.html">SDL::Video</a></td><td>- Bindings to the video category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Color.html">SDL::Color</a></td><td>- Format independent color description</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Overlay.html">SDL::Overlay</a></td><td>- YUV Video overlay</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Palette.html">SDL::Palette</a></td><td>- Color palette for 8-bit pixel formats </td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-PixelFormat.html">SDL::PixelFormat</a></td><td>- Stores surface format information</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Rect.html">SDL::Rect</a></td><td>- Defines a rectangular area</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Surface.html">SDL::Surface</a></td><td>- Graphic surface structure</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-VideoInfo.html">SDL::VideoInfo</a></td><td>- Video Target Information </td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Cookbook</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Cookbook.html">SDL::Cookbook</a></td><td></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Cookbook-OpenGL.html">SDL::Cookbook::OpenGL</a></td><td>- Using SDL with OpenGL</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Cookbook-PDL.html">SDL::Cookbook::PDL</a></td><td></td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Extension</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDLx-App.html">SDLx::App</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDLx-Rect.html">SDLx::Rect</a></td><td>- SDL extension for storing and manipulating rectangular coordinates</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDLx-SFont.html">SDLx::SFont</a></td><td>- Extension making fonts out of images and printing them</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDLx-Sprite.html">SDLx::Sprite</a></td><td>- interact with images quick and easily in SDL</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDLx-Sprite-Animated.html">SDLx::Sprite::Animated</a></td><td>- create animated SDL sprites easily!</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDLx-Surface.html">SDLx::Surface</a></td><td>- Graphic surface matrix extension</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">GFX</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Framerate.html">SDL::GFX::Framerate</a></td><td>- framerate calculating functions</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Primitives.html">SDL::GFX::Primitives</a></td><td>- basic drawing functions</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-FPSManager.html">SDL::GFX::FPSManager</a></td><td>- data structure used by SDL::GFX::Framerate</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Image</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Image.html">SDL::Image</a></td><td>- Bindings for the SDL_Image library</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Mixer</strong></td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer.html">SDL::Mixer</a></td><td>- Sound and music functions</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Channels.html">SDL::Mixer::Channels</a></td><td>- SDL::Mixer channel functions and bindings</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Effects.html">SDL::Mixer::Effects</a></td><td>- sound effect functions</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Groups.html">SDL::Mixer::Groups</a></td><td>- Audio channel group functions</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Music.html">SDL::Mixer::Music</a></td><td>- functions for music</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Samples.html">SDL::Mixer::Samples</a></td><td>- functions for loading sound samples</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixChunk.html">SDL::Mixer::MixChunk</a></td><td>- SDL Bindings for structure SDL_MixChunk</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixMusic.html">SDL::Mixer::MixMusic</a></td><td>- SDL Bindings for structure SDL_MixMusic</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Pango</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Pango.html">SDL::Pango</a></td><td>- Text rendering engine</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Pango-Context.html">SDL::Pango::Context</a></td><td>- Context object for SDL::Pango</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">TODO</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-MPEG.html">SDL::MPEG</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-SMPEG.html">SDL::SMPEG</a></td><td>- a SDL perl extension</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">MultiThread</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-MultiThread.html">SDL::MultiThread</a></td><td>- Bindings to the MultiThread category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-RWOps.html">SDL::RWOps</a></td><td>- SDL Bindings to SDL_RWOPs</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">GFX</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-BlitFunc.html">SDL::GFX::BlitFunc</a></td><td>- blitting functions</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-ImageFilter.html">SDL::GFX::ImageFilter</a></td><td>- image filtering functions</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Rotozoom.html">SDL::GFX::Rotozoom</a></td><td>- rotation and zooming functions for surfaces</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">TTF</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-TTF.html">SDL::TTF</a></td><td>- True Type Font functions (libfreetype)</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-TTF-Font.html">SDL::TTF::Font</a></td><td>- Font object type for SDL_ttf</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Tutorials</strong></td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial.html">SDL::Tutorial</a></td><td>- introduction to Perl SDL</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Animation.html">SDL::Tutorial::Animation</a></td><td></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-LunarLander.html">SDL::Tutorial::LunarLander</a></td><td>- a small tutorial on Perl SDL</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">UNCATEGORIZED</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDLx-Controller.html">SDLx::Controller</a></td><td>- Handles the loops for event, movement and rendering</td></tr></table></div>
+<h1>Documentation (latest development branch)</h1><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Core</strong></td></tr><tr><td><img src="assets/SDL_thumb.png" alt="thumb" /></td><td><a href="SDL.html">SDL</a></td><td>- Simple DirectMedia Layer for Perl</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Credits.html">SDL::Credits</a></td><td>- Authors and contributors of the SDL Perl project</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Deprecated.html">SDL::Deprecated</a></td><td>- Log of Deprecated items per release</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Time.html">SDL::Time</a></td><td>- An SDL Perl extension for managing timers</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Audio</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Audio.html">SDL::Audio</a></td><td>- SDL Bindings for Audio</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-AudioCVT.html">SDL::AudioCVT</a></td><td>- Audio Conversion Structure</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-AudioSpec.html">SDL::AudioSpec</a></td><td>- SDL Bindings for structure SDL::AudioSpec</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">CDROM</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-CDROM.html">SDL::CDROM</a></td><td>- SDL Bindings for the CDROM device</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-CD.html">SDL::CD</a></td><td>- SDL Bindings for structure SDL_CD</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-CDTrack.html">SDL::CDTrack</a></td><td>- SDL Bindings for structure SDL_CDTrack</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Events</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Events.html">SDL::Events</a></td><td>- Bindings to the Events Category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Event.html">SDL::Event</a></td><td>- General event structure</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Joystick</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Joystick.html">SDL::Joystick</a></td><td>- SDL Bindings for the Joystick device</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Mouse</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Mouse.html">SDL::Mouse</a></td><td>- SDL Bindings for the Mouse device</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Cursor.html">SDL::Cursor</a></td><td>- Mouse cursor structure</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Version.html">SDL::Version</a></td><td>- SDL Bindings for structure SDL_Version</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Video</strong></td></tr><tr><td><img src="assets/Video_thumb.png" alt="thumb" /></td><td><a href="SDL-Video.html">SDL::Video</a></td><td>- Bindings to the video category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Color.html">SDL::Color</a></td><td>- Format independent color description</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Overlay.html">SDL::Overlay</a></td><td>- YUV Video overlay</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Palette.html">SDL::Palette</a></td><td>- Color palette for 8-bit pixel formats </td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-PixelFormat.html">SDL::PixelFormat</a></td><td>- Stores surface format information</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Rect.html">SDL::Rect</a></td><td>- Defines a rectangular area</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Surface.html">SDL::Surface</a></td><td>- Graphic surface structure</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-VideoInfo.html">SDL::VideoInfo</a></td><td>- Video Target Information </td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Cookbook</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Cookbook.html">SDL::Cookbook</a></td><td></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Cookbook-OpenGL.html">SDL::Cookbook::OpenGL</a></td><td>- Using SDL with OpenGL</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Cookbook-PDL.html">SDL::Cookbook::PDL</a></td><td></td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Extension</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDLx-App.html">SDLx::App</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDLx-Rect.html">SDLx::Rect</a></td><td>- SDL extension for storing and manipulating rectangular coordinates</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDLx-SFont.html">SDLx::SFont</a></td><td>- Extension making fonts out of images and printing them</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDLx-Sprite.html">SDLx::Sprite</a></td><td>- interact with images quick and easily in SDL</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDLx-Sprite-Animated.html">SDLx::Sprite::Animated</a></td><td>- create animated SDL sprites easily!</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDLx-Surface.html">SDLx::Surface</a></td><td>- Graphic surface matrix extension</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">GFX</strong></td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Framerate.html">SDL::GFX::Framerate</a></td><td>- framerate calculating functions</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Primitives.html">SDL::GFX::Primitives</a></td><td>- basic drawing functions</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-FPSManager.html">SDL::GFX::FPSManager</a></td><td>- data structure used by SDL::GFX::Framerate</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Image</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Image.html">SDL::Image</a></td><td>- Bindings for the SDL_Image library</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Mixer</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer.html">SDL::Mixer</a></td><td>- Sound and music functions</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Channels.html">SDL::Mixer::Channels</a></td><td>- SDL::Mixer channel functions and bindings</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Effects.html">SDL::Mixer::Effects</a></td><td>- sound effect functions</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Groups.html">SDL::Mixer::Groups</a></td><td>- Audio channel group functions</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Music.html">SDL::Mixer::Music</a></td><td>- functions for music</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Samples.html">SDL::Mixer::Samples</a></td><td>- functions for loading sound samples</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixChunk.html">SDL::Mixer::MixChunk</a></td><td>- SDL Bindings for structure SDL_MixChunk</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixMusic.html">SDL::Mixer::MixMusic</a></td><td>- SDL Bindings for structure SDL_MixMusic</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Pango</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Pango.html">SDL::Pango</a></td><td>- Text rendering engine</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Pango-Context.html">SDL::Pango::Context</a></td><td>- Context object for SDL::Pango</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">TODO</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-MPEG.html">SDL::MPEG</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-SMPEG.html">SDL::SMPEG</a></td><td>- a SDL perl extension</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">MultiThread</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-MultiThread.html">SDL::MultiThread</a></td><td>- Bindings to the MultiThread category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-RWOps.html">SDL::RWOps</a></td><td>- SDL Bindings to SDL_RWOPs</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">GFX</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-BlitFunc.html">SDL::GFX::BlitFunc</a></td><td>- blitting functions</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-ImageFilter.html">SDL::GFX::ImageFilter</a></td><td>- image filtering functions</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Rotozoom.html">SDL::GFX::Rotozoom</a></td><td>- rotation and zooming functions for surfaces</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">TTF</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-TTF.html">SDL::TTF</a></td><td>- True Type Font functions (libfreetype)</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-TTF-Font.html">SDL::TTF::Font</a></td><td>- Font object type for SDL_ttf</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Tutorials</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial.html">SDL::Tutorial</a></td><td>- introduction to Perl SDL</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Animation.html">SDL::Tutorial::Animation</a></td><td></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-LunarLander.html">SDL::Tutorial::LunarLander</a></td><td>- a small tutorial on Perl SDL</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">UNCATEGORIZED</strong></td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDLx-Controller.html">SDLx::Controller</a></td><td>- Handles the loops for event, movement and rendering</td></tr></table></div>