then an <code>SDL_RELEASED</code> when released and pressed again. For these keys <code>KEYUP</code> and <code>KEYDOWN</code> events are therefore
analogous to the state of the caps lock and num lock LEDs rather than the keys themselves.
These special cases are required for compatibility with Sun workstations.</p>
-<p><strong>Note:</strong> Repeating <code>SDL_KEYDOWN</code> events will occur if key repeat is enabled (see <b>enable_key_repeat</b> (<b>&quot;enable_key_repeat&quot;</b> in <cite>SDL::EVENTS</cite>)). </p>
+<p><strong>Note:</strong> Repeating <code>SDL_KEYDOWN</code> events will occur if key repeat is enabled (see <a href="/SDL-Events.html#enable_key_repeat">enable_key_repeat</a>). </p>
</div>
<h3 id="key_state">key_state</h3>
</div>
<h3 id="key_unicode">key_unicode</h3>
<div id="key_unicode_CONTENT">
-<p>The <code>unicode</code> field is only used when UNICODE translation is enabled with <b>enable_unicode</b> (<b>&quot;enable_unicode&quot;</b> in <cite>SDL::EVENTS</cite>).
+<p>The <code>unicode</code> field is only used when UNICODE translation is enabled with <a href="/SDL-Events.html#enable_unicode">enable_unicode</a>.
If <code>unicode</code> is non-zero then this is the UNICODE character corresponding to the keypress.
If the high 9 bits of the character are 0, then this maps to the equivalent ASCII character:</p>
<pre> my $char;
</div>
<h3 id="motion_state">motion_state</h3>
<div id="motion_state_CONTENT">
-<p>The button state can be interpreted using the <code>SDL_BUTTON</code> macro (see <b>get_mouse_state</b> (<b>&quot;get_mouse_state&quot;</b> in <cite>SDL::EVENTS</cite>)). </p>
+<p>The button state can be interpreted using the <code>SDL_BUTTON</code> macro (see <a href="/SDL-Events.html#get_mouse_state">get_mouse_state</a>). </p>
</div>
<h3 id="motion_x_motion_y">motion_x, motion_y</h3>
</div>
<h1 id="AUTHORS">AUTHORS</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="AUTHORS_CONTENT">
-<p>See <b>AUTHORS</b> in <cite>SDL</cite>.</p>
+<p>See <a href="/SDL.html#AUTHORS">/SDL.html#AUTHORS</a>.</p>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="poll_event_event_CONTENT">
<p>Polls for currently pending events. </p>
<p>If $event is not NULL, the next event is removed from the queue and stored in the <a href="SDL-Event.html">SDL::Event</a> structure pointed to by $event.</p>
-<p>As this function implicitly calls pump_events, you can only call this function in the thread that set the video mode with <a href="/SDL-Video.html#set_video_mode">SDL::Video::set_video_mode</a>. </p>
+<p>As this function implicitly calls pump_events, you can only call this function in the thread that set the video mode with <a href="SDL-Video::set_video_mode.html">SDL::Video::set_video_mode</a>. </p>
</div>
<h3 id="RETURN-2">RETURN</h3>
<div id="wait_event_event_CONTENT">
<p>Waits indefinitely for the next available $event, returning 0 if there was an error while waiting for events, 1 otherwise.</p>
<p>If $event is not NULL, the next event is removed from the queue and stored in $event.</p>
-<p>As this function implicitly calls SDL_PumpEvents, you can only call this function in the thread that <a href="/SDL-Video.html#set_video_mode">SDL::Video::set_video_mode</a>. </p>
+<p>As this function implicitly calls SDL_PumpEvents, you can only call this function in the thread that <a href="SDL-Video::set_video_mode.html">SDL::Video::set_video_mode</a>. </p>
</div>
<h3 id="RETURN-4">RETURN</h3>
</pre>
<p>to filter the event return a 0, to pass the filter return a 1. </p>
<p>One <strong>Caveat</strong> is if you are filtering SDL_QUIT the event will be filtered if it is non-intterupt call ( Window closes normally ). If it is a interrupt SDL_QUIT it will be process on the next event poll. </p>
-<p>Events pushed onto to the queue with <a href="/SDL-Events.html#push_events">SDL::Events::push_events</a> or <a href="/SDL-Events.html#peep_events">SDL::Events::peep_events</a> do not get filtered.</p>
+<p>Events pushed onto to the queue with <a href="SDL-Events::push_events.html">SDL::Events::push_events</a> or <a href="SDL-Events::peep_events.html">SDL::Events::peep_events</a> do not get filtered.</p>
<p>This callback may run in a different thread. </p>
</div>
print $keys_ref->[SDLK_RETURN]; # 1 if pressed , 0 if not pressed
</pre>
-<p>Use <a href="/SDL-Events.html#pump_events">SDL::Events::pump_events</a> to update the state array.</p>
+<p>Use <a href="SDL-Events::pump_events.html">SDL::Events::pump_events</a> to update the state array.</p>
<p>This function gives you the current state after all events have been processed, so if a key or button has been pressed and released before you process events, then the pressed state will never show up in the get_key_state call.</p>
<p>This function doesn't take into account whether shift has been pressed or not.</p>
<h2 id="set_mod_state">set_mod_state</h2>
<div id="set_mod_state_CONTENT">
<p>Get the state of the modifier keys</p>
-<p>The inverse of <a href="/SDL-Events.html#get_mod_state">SDL::Events::get_mod_state</a> allows you to impose modifier key states on your application.</p>
+<p>The inverse of <a href="SDL-Events::get_mod_state.html">SDL::Events::get_mod_state</a> allows you to impose modifier key states on your application.</p>
<p>Simply pass your desired modifier states into $modstate. This value can be a OR'd combination of any KMOD* constant.</p>
<pre> my $modstate = KMOD_LMETA | KMOD_LSHIFT;
</pre>
-<p>Any KMOD_* constant see <a href="/SDL-Events.html#get_mod_state">SDL::Events::get_mod_state</a> for constants.
+<p>Any KMOD_* constant see <a href="SDL-Events::get_mod_state.html">SDL::Events::get_mod_state</a> for constants.
SDL::Events::set_mod_state( $modstate );</p>
</div>
$previous_translation_mode = SDL::Events::enable_unicode( 0 ); #disables
</pre>
-<p>To obtain the character codes corresponding to received keyboard events, Unicode translation must first be turned on using this function. The translation incurs a slight overhead for each keyboard event and is therefore disabled by default. For each subsequently recieved key down event, the unicode member of the <a href="/SDL-Event.html#key_sym">SDL::Event::key_sym</a> provided structure will be then contain the corresponding character code, or otherwise zero.</p>
+<p>To obtain the character codes corresponding to received keyboard events, Unicode translation must first be turned on using this function. The translation incurs a slight overhead for each keyboard event and is therefore disabled by default. For each subsequently recieved key down event, the unicode member of the <a href="SDL-Event::key_sym.html">SDL::Event::key_sym</a> provided structure will be then contain the corresponding character code, or otherwise zero.</p>
<p>A value of 1 for enabling, 0 for disabling and -1 for unchanged. -1 is usefull for querying the current translation mode.</p>
<p>Only key press events will be translated not release events.</p>
<p>Returns the previous translation mode as (1,0).</p>
<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="DESCRIPTION_CONTENT">
<p>All functions take an SDL::Surface object as first parameter. This can be a new surface that will be blittet afterwads, can be an surface
-obtained by <a href="/SDL-Video.html#set_video_mode">SDL::Video::set_video_mode</a> or can be an <a href="http://search.cpan.org/perldoc?SDLx::App">SDLx::App</a>.</p>
+obtained by <a href="SDL-Video::set_video_mode.html">SDL::Video::set_video_mode</a> or can be an <a href="http://search.cpan.org/perldoc?SDLx::App">SDLx::App</a>.</p>
<p>The <code>color</code> values for the <code>_color</code> functions are <code>0xRRGGBBAA</code> (32bit), even if the surface uses e. g. 8bit colors.</p>
</div>
</pre>
<p>$file Image file name to load a surface from. </p>
-<p>Load file for use as an image in a new <a href="SDL-Surface.html">SDL::Surface</a>. This actually calls <code>IMG_LoadTyped_RW</code> the binded function to <a href="/SDL-Image.html#load_typed_rw">SDL::Image::load_typed_rw</a>, with the file extension used as the type string. This can load all supported image files, including TGA as long as the filename ends with ".tga". It is best to call this outside of event loops, and rather keep the loaded images around until you are really done with them, as disk speed and image conversion to a surface is not that speedy.
-Note: If the image format loader requires initialization, it will attempt to do that the first time it is needed if you have not already called <a href="/SDL-Image.html#init">SDL::Image::init</a> to load support for your image format.
+<p>Load file for use as an image in a new <a href="SDL-Surface.html">SDL::Surface</a>. This actually calls <code>IMG_LoadTyped_RW</code> the binded function to <a href="SDL-Image::load_typed_rw.html">SDL::Image::load_typed_rw</a>, with the file extension used as the type string. This can load all supported image files, including TGA as long as the filename ends with ".tga". It is best to call this outside of event loops, and rather keep the loaded images around until you are really done with them, as disk speed and image conversion to a surface is not that speedy.
+Note: If the image format loader requires initialization, it will attempt to do that the first time it is needed if you have not already called <a href="SDL-Image::init.html">SDL::Image::init</a> to load support for your image format.
Note: If the image format supports a transparent pixel, <a href="SDL-Image.html">SDL::Image</a> will set the colorkey for the surface. You can enable RLE acceleration on the surface afterwards by calling:
-<a href="/SDL-Video.html#set_color_key">SDL::Video::set_color_key</a></p>
+<a href="SDL-Video::set_color_key.html">SDL::Video::set_color_key</a></p>
<pre> my $image = SDL::Image::load( $some_png_file );
SDL::Video::set_color_key($image, SDL_RLEACCEL, $image->format->colorkey);
</div>
<h3 id="Return">Return</h3>
<div id="Return_CONTENT">
-<p>An image as a <a href="SDL-Surface.html">SDL::Surface</a>. NULL is returned on errors, such as no support built for the image, or a file reading error. Use <a href="/SDL.html#get_error">SDL::get_error</a> to get cause of error.</p>
+<p>An image as a <a href="SDL-Surface.html">SDL::Surface</a>. NULL is returned on errors, such as no support built for the image, or a file reading error. Use <a href="SDL::get_error.html">SDL::get_error</a> to get cause of error.</p>
</div>
<h2 id="load_typed_rw">load_typed_rw</h2>
</dd>
</dl>
<p>Load src for use as a surface. This can load all supported image formats. This method does not guarantee that the format specified by type is the format of the loaded image, except in the case when TGA format is specified (or any other non-magicable format in the future). Using SDL_RWops is not covered here, but they enable you to load from almost any source.
-Note: If the image format loader requires initialization, it will attempt to do that the first time it is needed if you have not already called <a href="/SDL-Image.html#init">SDL::Image::init</a> to load support for your image format.
+Note: If the image format loader requires initialization, it will attempt to do that the first time it is needed if you have not already called <a href="SDL-Image::init.html">SDL::Image::init</a> to load support for your image format.
Note: If the image format supports a transparent pixel, <a href="SDL-Image.html">SDL::Image</a> will set the colorkey for the surface. You can enable RLE acceleration on the surface afterwards by calling:
-<a href="/SDL-Video.html#set_color_key">SDL::Video::set_color_key</a></p>
+<a href="SDL-Video::set_color_key.html">SDL::Video::set_color_key</a></p>
</div>
<h3 id="Transparency">Transparency </h3>
<h2 id="quit">quit</h2>
<div id="quit_CONTENT">
<p><strong>For version SDL_image 1.2.10 and up</strong></p>
-<p>This function cleans up all dynamically loaded library handles, freeing memory. If support is required again it will be initialized again, either by <a href="/SDL-Image.html#init">SDL::Image::init</a> or loading an image with dynamic support required. You may call this function when <a href="/SDL-Image.html#load">SDL::Image::load</a> functions are no longer needed for the JPG, PNG, and TIF image formats. You only need to call this function once, no matter how many times <a href="/SDL-Image.html#init">SDL::Image::init</a> was called. </p>
+<p>This function cleans up all dynamically loaded library handles, freeing memory. If support is required again it will be initialized again, either by <a href="SDL-Image::init.html">SDL::Image::init</a> or loading an image with dynamic support required. You may call this function when <a href="SDL-Image::load.html">SDL::Image::load</a> functions are no longer needed for the JPG, PNG, and TIF image formats. You only need to call this function once, no matter how many times <a href="SDL-Image::init.html">SDL::Image::init</a> was called. </p>
</div>
<h3 id="Example-6">Example</h3>
</div>
<h2 id="set_error">set_error</h2>
<div id="set_error_CONTENT">
-<p>Same as <a href="/SDL.html#set_error">SDL::set_error</a></p>
+<p>Same as <a href="SDL::set_error.html">SDL::set_error</a></p>
</div>
<h2 id="get_error">get_error</h2>
<div id="get_error_CONTENT">
-<p>Same as <a href="/SDL.html#get_error">SDL::get_error</a></p>
+<p>Same as <a href="SDL::get_error.html">SDL::get_error</a></p>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
</pre>
<p>Remove the registered effect function from the effect list for channel.
If the channel is active the registered effect will have its <code>$done_callback</code> function called, if it was specified in
-<a href="/SDL-Mixer-Effects.html#register">SDL::Mixer::Effects::register</a>.</p>
+<a href="SDL-Mixer-Effects::register.html">SDL::Mixer::Effects::register</a>.</p>
<p>Returns: Zero on errors, such as invalid channel, or effect function not registered on channel. </p>
<p><strong>Note</strong>: Do not use this on a threaded perl. This will crash.</p>
</pre>
<p>This removes all effects registered to <code>$channel</code>. If the channel is active all the registered effects will have their <code>$done_callback</code>
-functions called, if they were specified in <a href="/SDL-Mixer-Effects.html#register">SDL::Mixer::Effects::register</a>.</p>
+functions called, if they were specified in <a href="SDL-Mixer-Effects::register.html">SDL::Mixer::Effects::register</a>.</p>
<p>Returns: Zero on errors, such as channel not existing. </p>
<p><strong>Note</strong>: Do not use this on a threaded perl. This will crash.</p>
</pre>
<p>Hook a processor function to the postmix stream for post processing effects. You may just be reading the data and displaying it, or you may be
altering the stream to add an echo. This processor is never really finished, until you call it without arguments.
-There can only be one postmix function used at a time through this method. Use <a href="/SDL-Mixer-Effects.html#register">SDL::Mixer::Effects::register</a> with MIX_CHANNEL_POST to use multiple postmix processors.
-This postmix processor is run AFTER all the registered postmixers set up by <a href="/SDL-Mixer-Effects.html#register">SDL::Mixer::Effects::register</a>. </p>
+There can only be one postmix function used at a time through this method. Use <a href="SDL-Mixer-Effects::register.html">SDL::Mixer::Effects::register</a> with MIX_CHANNEL_POST to use multiple postmix processors.
+This postmix processor is run AFTER all the registered postmixers set up by <a href="SDL-Mixer-Effects::register.html">SDL::Mixer::Effects::register</a>. </p>
<p><strong>Note</strong>: Do not use this on a threaded perl. This will crash.</p>
</div>
</pre>
<p>This effect simulates a simple attenuation of volume due to distance. The volume never quite reaches silence, even at max distance (<code>255</code>).</p>
<p>NOTE: Using a distance of <code>0</code> will cause the effect to unregister itself from channel. You cannot unregister it any other way, unless you use
-<a href="/SDL-Mixer-Effects.html#unregister_all">SDL::Mixer::Effects::unregister_all</a> on the channel.</p>
+<a href="SDL-Mixer-Effects::unregister_all.html">SDL::Mixer::Effects::unregister_all</a> on the channel.</p>
<p>Returns: Zero on errors, such as an invalid channel, or if Mix_RegisterEffect failed. </p>
</div>
<pre> SDL::Mixer::Effects::set_panning( $channel, $left, $right );
</pre>
-<p>This effect will only work on stereo audio. Meaning you called <a href="/SDL-Mixer.html#open_audio">SDL::Mixer::open_audio</a> with 2 channels. </p>
+<p>This effect will only work on stereo audio. Meaning you called <a href="SDL-Mixer::open_audio.html">SDL::Mixer::open_audio</a> with 2 channels. </p>
<p><strong>Note</strong>: Setting both left and right to 255 will unregister the effect from channel. You cannot unregister it any other way, unless you use
-<a href="/SDL-Mixer-Effects.html#unregister_all">SDL::Mixer::Effects::unregister_all</a> on the channel.</p>
+<a href="SDL-Mixer-Effects::unregister_all.html">SDL::Mixer::Effects::unregister_all</a> on the channel.</p>
<p><strong>Note</strong>: Using this function on a mono audio device will not register the effect, nor will it return an error status.</p>
-<p>Returns: Zero on errors, such as bad channel, or if <a href="/SDL-Mixer-Effects.html#register">SDL::Mixer::Effects::register</a> failed. </p>
+<p>Returns: Zero on errors, such as bad channel, or if <a href="SDL-Mixer-Effects::register.html">SDL::Mixer::Effects::register</a> failed. </p>
</div>
<h2 id="set_position">set_position</h2>
<p>So you can see it goes clockwise starting at directly in front.</p>
<p><code>$distance</code> is <code>0</code>(close/loud) to <code>255</code>(far/quiet).</p>
<p><strong>Note</strong>: Using angle and distance of <code>0</code>, will cause the effect to unregister itself from channel. You cannot unregister it any other way,
-unless you use <a href="/SDL-Mixer-Effects.html#unregister_all">SDL::Mixer::Effects::unregister_all</a> on the channel.</p>
+unless you use <a href="SDL-Mixer-Effects::unregister_all.html">SDL::Mixer::Effects::unregister_all</a> on the channel.</p>
<p>Returns: Zero on errors, such as an invalid channel, or if <code>SDL::Mixer::Effects::register</code> failed. </p>
</div>
</pre>
<p>If you pass <code>1</code> to <code>$flip</code> it simple reverse stereo, swaps left and right channel sound.</p>
<p><strong>Note</strong>: Using a flip of <code>0</code>, will cause the effect to unregister itself from channel. You cannot unregister it any other way, unless you use
-<a href="/SDL-Mixer-Effects.html#register">SDL::Mixer::Effects::register</a> on the channel. </p>
+<a href="SDL-Mixer-Effects::register.html">SDL::Mixer::Effects::register</a> on the channel. </p>
</div>
<h1 id="AUTHORS">AUTHORS</h1><p><a href="#TOP" class="toplink">Top</a></p>
without any channels reserved.</p>
<p>The following functions are affected by this setting: </p>
<ul>
- <li><a href="/SDL-Mixer-Channels.html#play_channel">SDL::Mixer::Channels::play_channel</a> </li>
- <li><a href="/SDL-Mixer-Channels.html#play_channel_timed">SDL::Mixer::Channels::play_channel_timed</a> </li>
- <li><a href="/SDL-Mixer-Channels.html#fade_in_channel">SDL::Mixer::Channels::fade_in_channel</a> </li>
- <li><a href="/SDL-Mixer-Channels.html#fade_in_channel_timed">SDL::Mixer::Channels::fade_in_channel_timed</a></li>
+ <li><a href="SDL-Mixer-Channels::play_channel.html">SDL::Mixer::Channels::play_channel</a> </li>
+ <li><a href="SDL-Mixer-Channels::play_channel_timed.html">SDL::Mixer::Channels::play_channel_timed</a> </li>
+ <li><a href="SDL-Mixer-Channels::fade_in_channel.html">SDL::Mixer::Channels::fade_in_channel</a> </li>
+ <li><a href="SDL-Mixer-Channels::fade_in_channel_timed.html">SDL::Mixer::Channels::fade_in_channel_timed</a></li>
</ul>
<p>Returns: The number of channels reserved. Never fails, but may return less channels than you ask for, depending on the number of channels
-previously allocated (see <a href="/SDL-Mixer-Channels.html#allocate_channels">SDL::Mixer::Channels::allocate_channels</a>).</p>
+previously allocated (see <a href="SDL-Mixer-Channels::allocate_channels.html">SDL::Mixer::Channels::allocate_channels</a>).</p>
</div>
<h2 id="group_channel">group_channel</h2>
<pre> SDL::Mixer::Music::hook_music_finished( 'main::callback' );
</pre>
-<p>This callback is called when music called by e.g. <a href="/SDL-Mixer-Music.html#play_music">SDL::Mixer::Music::play_music</a> or <a href="/SDL-Mixer-Music.html#fade_in_music">SDL::Mixer::Music::fade_in_music</a> stops naturally.
+<p>This callback is called when music called by e.g. <a href="SDL-Mixer-Music::play_music.html">SDL::Mixer::Music::play_music</a> or <a href="SDL-Mixer-Music::fade_in_music.html">SDL::Mixer::Music::fade_in_music</a> stops naturally.
This happens when the music is over or is fading out.</p>
-<p><strong>Note</strong>: If you play music via <a href="/SDL-Mixer-Music.html#hook_music">SDL::Mixer::Music::hook_music</a>, this callback will never be called.</p>
+<p><strong>Note</strong>: If you play music via <a href="SDL-Mixer-Music::hook_music.html">SDL::Mixer::Music::hook_music</a>, this callback will never be called.</p>
<p>Example:</p>
<pre> my $music_is_playing = 0;
my @music = qw(first.mp3 next.mp3 other.mp3 last.mp3);
<pre> my $position = SDL::Mixer::Music::get_music_hook_data();
</pre>
-<p>Returns the <code>position</code> (first) parameter that will be passed to <a href="/SDL-Mixer-Music.html#hook_music">SDL::Mixer::Music::hook_music</a>'s callback.</p>
+<p>Returns the <code>position</code> (first) parameter that will be passed to <a href="SDL-Mixer-Music::hook_music.html">SDL::Mixer::Music::hook_music</a>'s callback.</p>
</div>
<h2 id="play_music">play_music</h2>
<pre> my $music = SDL::Mixer::Music::fade_in_music( $mix_music, $loops, $ms );
</pre>
-<p>Same as <a href="/SDL-Mixer-Music.html#play_music">SDL::Mixer::Music::play_music</a> but you can specify the fade-in time by <code>$ms</code>.</p>
+<p>Same as <a href="SDL-Mixer-Music::play_music.html">SDL::Mixer::Music::play_music</a> but you can specify the fade-in time by <code>$ms</code>.</p>
</div>
<h2 id="fade_out_music">fade_out_music</h2>
<dt>MP3</dt>
<dd>
<p>Jumps to position seconds from the current position in the stream.
-So you may want to call <a href="/SDL-Mixer-Music.html#rewind_music">SDL::Mixer::Music::rewind_music</a> before this.
+So you may want to call <a href="SDL-Mixer-Music::rewind_music.html">SDL::Mixer::Music::rewind_music</a> before this.
Does not go in reverse... negative values do nothing. </p>
</dd>
</dl>
<pre> my $mix_chunk = SDL::Mixer::Samples::load_WAV( $file );
</pre>
-<p><code>load_WAV</code> reads a file and passes it to <a href="/SDL-Mixer-Samples.html#load_WAV_RW">SDL::Mixer::Samples::load_WAV_RW</a>. SO this is a quick way to load a file into a chunk.</p>
+<p><code>load_WAV</code> reads a file and passes it to <a href="SDL-Mixer-Samples::load_WAV_RW.html">SDL::Mixer::Samples::load_WAV_RW</a>. SO this is a quick way to load a file into a chunk.</p>
<p>Example:</p>
<pre> my $chunk = SDL::Mixer::Samples::load_WAV('sample.wav');
of SDL should take this parameter only as a hint, then read back the value that the OS (for example, OSS or ALSA) has chosen to use in case the
desired audio type is not supported. </p>
<p><strong>Note</strong>: When already initialized, this function will not re-initialize SDL_mixer, nor fail. It will merely increment the number of times
-<a href="/SDL-Mixer.html#close_audio">SDL::Mixer::close_audio</a> must be called to actually get it to uninitialize. This serves as a very simplistic method for multiple application
+<a href="SDL-Mixer::close_audio.html">SDL::Mixer::close_audio</a> must be called to actually get it to uninitialize. This serves as a very simplistic method for multiple application
components to use SDL_mixer without necessitating a great deal of inter-component awareness. Be warned however that in such a situation, the
latest components to initialize SDL_mixer will probably not get the SDL_mixer settings they're expecting. </p>
<p>Example:</p>
<div id="pixels_CONTENT">
<p>As of release 2.3 direct right to overlay is disable. </p>
<p>An array of pointers to the data of each plane. The overlay should be locked before these pointers are used.</p>
-<p>see <a href="/SDL-Video.html#lock_YUV_overlay">SDL::Video::lock_YUV_overlay</a>, <a href="/SDL-Video.html#unload_YUV_overlay">SDL::Video::unload_YUV_overlay</a></p>
+<p>see <a href="SDL-Video::lock_YUV_overlay.html">SDL::Video::lock_YUV_overlay</a>, <a href="SDL-Video::unload_YUV_overlay.html">SDL::Video::unload_YUV_overlay</a></p>
</div>
<h2 id="hw_overlay">hw_overlay</h2>
<pre> SDL::Pango::init();
</pre>
-<p>Initialize the Glib and Pango API. This must be called before using other functions in this library, excepting <a href="/SDL-Pango.html#was_init">SDL::Pango::was_init</a>.
+<p>Initialize the Glib and Pango API. This must be called before using other functions in this library, excepting <a href="SDL-Pango::was_init.html">SDL::Pango::was_init</a>.
SDL does not have to be initialized before this call.</p>
<p>Returns: always <code>0</code>. </p>
<pre> my $was_init = SDL::Pango::was_init();
</pre>
-<p>Query the initilization status of the Glib and Pango API. You may, of course, use this before <a href="/SDL-Pango.html#init">SDL::Pango::init</a> to avoid initilizing twice
+<p>Query the initilization status of the Glib and Pango API. You may, of course, use this before <a href="SDL-Pango::init.html">SDL::Pango::init</a> to avoid initilizing twice
in a row.</p>
<p>Returns: Non-zero when already initialized. Zero when not initialized.</p>
<pre> SDL::Pango::set_surface_create_args($context, $flags, $bits, $r_mask, $g_mask, $b_mask, $a_mask);
</pre>
-<p>Sets the argumet that are used when creating a surface via <a href="/SDL-Pango.html#create_surface_draw">SDL::Pango::create_surface_draw</a>.</p>
+<p>Sets the argumet that are used when creating a surface via <a href="SDL-Pango::create_surface_draw.html">SDL::Pango::create_surface_draw</a>.</p>
<p>Example:</p>
<pre> SDL::Pango::set_surface_create_args(
$context,
<pre> my $surface = SDL::Pango::create_surface_draw($context);
</pre>
-<p>Creates a new surface and draws the text/markup. You can specify the attributes of the surfaces using <a href="/SDL-Pango.html#set_surface_create_args">SDL::Pango::set_surface_create_args</a>.</p>
+<p>Creates a new surface and draws the text/markup. You can specify the attributes of the surfaces using <a href="SDL-Pango::set_surface_create_args.html">SDL::Pango::set_surface_create_args</a>.</p>
</div>
<h1 id="AUTHORS">AUTHORS</h1><p><a href="#TOP" class="toplink">Top</a></p>
</pre>
<p>Initialize the truetype font API.
-This must be called before using other functions in this library, except <a href="/SDL-TTF.html#was_init">SDL::TTF::was_init</a> and <a href="/SDL-TTF.html#linked_version">SDL::TTF::linked_version</a>.
+This must be called before using other functions in this library, except <a href="SDL-TTF::was_init.html">SDL::TTF::was_init</a> and <a href="SDL-TTF::linked_version.html">SDL::TTF::linked_version</a>.
SDL does not have to be initialized before this call.</p>
<p>Returns: <code>0</code> on success, <code>-1</code> on any error.</p>
</pre>
<p>Query the initilization status of the truetype font API.
-You may, of course, use this before <a href="/SDL-TTF.html#init">SDL::TTF::init</a> to avoid initializing twice in a row. Or use this to determine if you need to call
-<a href="/SDL-TTF.html#quit">SDL::TTF::quit</a>.</p>
+You may, of course, use this before <a href="SDL-TTF::init.html">SDL::TTF::init</a> to avoid initializing twice in a row. Or use this to determine if you need to call
+<a href="SDL-TTF::quit.html">SDL::TTF::quit</a>.</p>
</div>
<h3 id="quit">quit</h3>
</pre>
<p>Shutdown and cleanup the truetype font API.
-After calling this the SDL::TTF functions should not be used, excepting <a href="/SDL-TTF.html#was_init">SDL::TTF::was_init</a>. You may, of course, use <a href="/SDL-TTF.html#init">SDL::TTF::init</a> to
+After calling this the SDL::TTF functions should not be used, excepting <a href="SDL-TTF::was_init.html">SDL::TTF::was_init</a>. You may, of course, use <a href="SDL-TTF::init.html">SDL::TTF::init</a> to
use the functionality again</p>
</div>
<pre> my $font = SDL::TTF::open_font($font_file, $point_size, $face_index);
</pre>
-<p>This is the same as <a href="/SDL-TTF.html#open_font">SDL::TTF::open_font</a>, except you can specify the face index of a font file containing multiple faces.
+<p>This is the same as <a href="SDL-TTF::open_font.html">SDL::TTF::open_font</a>, except you can specify the face index of a font file containing multiple faces.
This can load TTF and FON files. </p>
</div>
<pre> my $font = SDL::TTF::open_font_RW($rwops_object, $free, $point_size);
</pre>
-<p>This is the same as <a href="/SDL-TTF.html#open_font">SDL::TTF::open_font</a>, except you can pass an <a href="SDL-RWOps.html">SDL::RWOps</a>-object. If you pass true as <code>$free</code>, the <a href="SDL-RWOps.html">SDL::RWOps</a>-object
+<p>This is the same as <a href="SDL-TTF::open_font.html">SDL::TTF::open_font</a>, except you can pass an <a href="SDL-RWOps.html">SDL::RWOps</a>-object. If you pass true as <code>$free</code>, the <a href="SDL-RWOps.html">SDL::RWOps</a>-object
will be freed by SDL_ttf library. Don't do this, perl will free this object for you.</p>
<p>Example:</p>
<pre> my $font = SDL::TTF::open_font_RW(SDL::RWOps->new_file($font_file, 'r'), 0, 24);
<pre> my $font = SDL::TTF::open_font_index_RW($rwops_object, $free, $point_size, $face_index);
</pre>
-<p>This is the same as <a href="/SDL-TTF.html#open_font_index">SDL::TTF::open_font_index</a>, except you can pass an <a href="SDL-RWOps.html">SDL::RWOps</a>-object. If you pass true as <code>$free</code>, the
+<p>This is the same as <a href="SDL-TTF::open_font_index.html">SDL::TTF::open_font_index</a>, except you can pass an <a href="SDL-RWOps.html">SDL::RWOps</a>-object. If you pass true as <code>$free</code>, the
<a href="SDL-RWOps.html">SDL::RWOps</a>-object will be freed by SDL_ttf library. Don't do this, perl will free this object for you.</p>
</div>
</pre>
<p>Get the maximum pixel height of all glyphs of the loaded font. You may use this height for rendering text as close together vertically as
possible, though adding at least one pixel height to it will space it so they can't touch. Remember that SDL_ttf doesn't handle multiline
-printing, so you are responsible for line spacing, see the <a href="/SDL-TTF.html#font_line_skip">SDL::TTF::font_line_skip</a> as well.</p>
+printing, so you are responsible for line spacing, see the <a href="SDL-TTF::font_line_skip.html">SDL::TTF::font_line_skip</a> as well.</p>
</div>
<h4 id="font_ascent">font_ascent</h4>
<pre> my $font_line_skip = SDL::TTF::font_line_skip($font);
</pre>
-<p>Get the recommended pixel height of a rendered line of text of the loaded font. This is usually larger than the <a href="/SDL-TTF.html#font_height">SDL::TTF::font_height</a> of the
+<p>Get the recommended pixel height of a rendered line of text of the loaded font. This is usually larger than the <a href="SDL-TTF::font_height.html">SDL::TTF::font_height</a> of the
font.</p>
</div>
</pre>
<p>Calculate the resulting surface size of the LATIN1 encoded text rendered using <code>$font</code>. No actual rendering is done, however correct kerning
-is done to get the actual width. The height returned is the same as you can get using <a href="/SDL-TTF.html#font_height">SDL::TTF::font_height</a>.</p>
+is done to get the actual width. The height returned is the same as you can get using <a href="SDL-TTF::font_height.html">SDL::TTF::font_height</a>.</p>
</div>
<h4 id="size_utf8">size_utf8</h4>
</pre>
<p>Calculate the resulting surface size of the UTF8 encoded text rendered using <code>$font</code>. No actual rendering is done, however correct kerning is
-done to get the actual width. The height returned in h is the same as you can get using <a href="/SDL-TTF.html#font_height">SDL::TTF::font_height</a>.</p>
+done to get the actual width. The height returned in h is the same as you can get using <a href="SDL-TTF::font_height.html">SDL::TTF::font_height</a>.</p>
<p>Note that the first example uses the same text as in the LATIN1 example, that is because plain ASCII is UTF8 compatible.</p>
<p>Examples:</p>
<pre> ($width, $height) = @{ SDL::TTF::size_utf8($font, 'Hallo World!') }; # plain text, if your script is in utf8 or ansi-format
</pre>
<p>Calculate the resulting surface size of the UNICODE encoded text rendered using <code>$font</code>. No actual rendering is done, however correct kerning
-is done to get the actual width. The height returned in h is the same as you can get using <a href="/SDL-TTF.html#font_height">SDL::TTF::font_height</a>.</p>
+is done to get the actual width. The height returned in h is the same as you can get using <a href="SDL-TTF::font_height.html">SDL::TTF::font_height</a>.</p>
<p><code>$text</code> has to be:</p>
<dl>
<dt>UTF16BE without BOM</dt>
</pre>
<p>Render the unicode encoded char onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface.</p>
-<p><strong>Note</strong>: The unicode char has to be passed exactly like for <a href="/SDL-TTF.html#size_unicode">SDL::TTF::size_unicode</a>.</p>
+<p><strong>Note</strong>: The unicode char has to be passed exactly like for <a href="SDL-TTF::size_unicode.html">SDL::TTF::size_unicode</a>.</p>
<p><strong>Note</strong>: <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374062">See space-character bug</a>. You have to upgrade libfreetype2 to at least version 2.3.5</p>
</div>
</pre>
<p>Render the unicode encoded text onto a new surface, using the Solid mode. After that you can blit this surface to your display-surface.</p>
-<p><strong>Note</strong>: The unicode test has to be passed exactly like for <a href="/SDL-TTF.html#size_unicode">SDL::TTF::size_unicode</a>.</p>
+<p><strong>Note</strong>: The unicode test has to be passed exactly like for <a href="SDL-TTF::size_unicode.html">SDL::TTF::size_unicode</a>.</p>
<p><strong>Note</strong>: <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374062">See space-character bug</a>. You have to upgrade libfreetype2 to at least
version 2.3.5</p>
</pre>
<p>Render the unicode encoded char onto a new surface. The surface is filled with <code>$background_color</code>. After that you can blit this surface to
your display-surface.</p>
-<p><strong>Note</strong>: The unicode char has to be passed exactly like for <a href="/SDL-TTF.html#size_unicode">SDL::TTF::size_unicode</a>.</p>
+<p><strong>Note</strong>: The unicode char has to be passed exactly like for <a href="SDL-TTF::size_unicode.html">SDL::TTF::size_unicode</a>.</p>
</div>
<h4 id="render_text_shaded">render_text_shaded</h4>
</pre>
<p>Render the unicode encoded text onto a new surface. The surface is filled with <code>$background_color</code>. After that you can blit this surface to
your display-surface.</p>
-<p><strong>Note</strong>: The unicode text has to be passed exactly like for <a href="/SDL-TTF.html#size_unicode">SDL::TTF::size_unicode</a>.</p>
+<p><strong>Note</strong>: The unicode text has to be passed exactly like for <a href="SDL-TTF::size_unicode.html">SDL::TTF::size_unicode</a>.</p>
</div>
<h3 id="Blended">Blended</h3>
</pre>
<p>Render the unicode encoded char onto a new surface. After that you can blit this surface to your display-surface.</p>
-<p><strong>Note</strong>: The unicode char has to be passed exactly like for <a href="/SDL-TTF.html#size_unicode">SDL::TTF::size_unicode</a>.</p>
+<p><strong>Note</strong>: The unicode char has to be passed exactly like for <a href="SDL-TTF::size_unicode.html">SDL::TTF::size_unicode</a>.</p>
</div>
<h4 id="render_text_blended">render_text_blended</h4>
</pre>
<p>Render the unicode encoded text onto a new surface. After that you can blit this surface to your display-surface.</p>
-<p><strong>Note</strong>: The unicode char has to be passed exactly like for <a href="/SDL-TTF.html#size_unicode">SDL::TTF::size_unicode</a>.</p>
+<p><strong>Note</strong>: The unicode char has to be passed exactly like for <a href="SDL-TTF::size_unicode.html">SDL::TTF::size_unicode</a>.</p>
</div>
<h1 id="AUTHORS">AUTHORS</h1><p><a href="#TOP" class="toplink">Top</a></p>
a <a href="SDL-Color.html">SDL::Color</a> <code>$color</code>, you only have to create a new SDL::Rect <code>$bg</code>,
representing the whole of the background surface and a new mapped color
<code>$bg_color</code>, representing the background color. The colors need to be mapped
-to the format of the current display. This is done by <a href="/SDL-Video.html#map_RGB">SDL::Video::map_RGB</a>.</p>
+to the format of the current display. This is done by <a href="SDL-Video::map_RGB.html">SDL::Video::map_RGB</a>.</p>
<p> </p>
<p>my $color = SDL::Video::map_RGB (
$app->format,
</dd>
<dt>* alpha_key => SDL::Color</dt>
<dd>
- <p>MUST CALL <a href="/SDL-Video.html#get_video_mode">SDL::Video::get_video_mode</a> prior to this. </p>
+ <p>MUST CALL <a href="SDL-Video::get_video_mode.html">SDL::Video::get_video_mode</a> prior to this. </p>
<p>Uses the provided <a href="SDL-Color.html">SDL::Color</a> object (or an array reference with red,
green and blue values) as the color to be turned into transparent
(see 'alpha' below).</p>
</div>
<h2 id="display">display</h2>
<div id="display_CONTENT">
-<p>If <a href="http://search.cpan.org/perldoc?SDLx::App::new">SDLx::App::new</a> or <a href="/SDL-Video.html#get_video_mode">SDL::Video::get_video_mode</a> called before then:</p>
+<p>If <a href="http://search.cpan.org/perldoc?SDLx::App::new">SDLx::App::new</a> or <a href="SDL-Video::get_video_mode.html">SDL::Video::get_video_mode</a> called before then:</p>
<pre> my $appx = SDLx::Surface::display();
</pre>
</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>
+<p>Applies <a href="SDL-Video::flip.html">SDL::Video::flip</a> to the Surface, with error checking.</p>
<p>Returns $self</p>
</div>
$sdlx_surface->update( [ SDL::Rect->new(0,0,1,2) ... ]); # defined rects are updated
</pre>
-<p>Applies <a href="/SDL-Video.html#update_rect">SDL::Video::update_rect</a> for no rect or 1 array ref. Applies <a href="/SDL-Video.html#update_rects">SDL::Video::update_rects</a> for array of <a href="SDL-Rect.html">SDL::Rect</a>s. </p>
+<p>Applies <a href="SDL-Video::update_rect.html">SDL::Video::update_rect</a> for no rect or 1 array ref. Applies <a href="SDL-Video::update_rects.html">SDL::Video::update_rects</a> for array of <a href="SDL-Rect.html">SDL::Rect</a>s. </p>
<p>Returns $self</p>
<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-5-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-1-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-1-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-1-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-3-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-3-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-3-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-7-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-1-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-5-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-4-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-7-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-2-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-6-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-1-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-3-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-4-mini.png" alt="thumb" /></td><td><a href="SDL-Cookbook.html">SDL::Cookbook</a></td><td></td></tr><tr><td><img src="assets/bubble-5-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-6-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-3-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-6-mini.png" alt="thumb" /></td><td><a href="SDLx-Layer.html">SDLx::Layer</a></td><td>- Storage object for surface and position information</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDLx-LayerManager.html">SDLx::LayerManager</a></td><td>- Extension for managing layers in a 2D world</td></tr><tr><td><img src="assets/bubble-1-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-4-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-6-mini.png" alt="thumb" /></td><td><a href="SDLx-Sound.html">SDLx::Sound</a></td><td></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-6-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-4-mini.png" alt="thumb" /></td><td><a href="SDLx-Surface.html">SDLx::Surface</a></td><td>- Graphic surface matrix extension</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Controller</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDLx-Controller.html">SDLx::Controller</a></td><td>- Handles the loops for events, movement and rendering</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDLx-Controller-Interface.html">SDLx::Controller::Interface</a></td><td>- Interface Physics and Rendering with the Controller with callbacks</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-2-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-6-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-7-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-3-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-7-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-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-7-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-2-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-3-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-1-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-4-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-3-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-1-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-7-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-3-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-6-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-7-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-4-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-4-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></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><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Events</strong></td></tr><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-Event.html">SDL::Event</a></td><td>- General event structure</td></tr></table></div>