</div>
<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="DESCRIPTION_CONTENT">
-<p><a href="/SDL-App.html">SDL::App</a> controls the root window of the of your SDL based application.
-It extends the <a href="/SDL-Surface.html">SDL::Surface</a> class, and provides an interface to the window
+<p><a href="SDL-App">SDL::App</a> controls the root window of the of your SDL based application.
+It extends the <a href="SDL-Surface">SDL::Surface</a> class, and provides an interface to the window
manager oriented functions.</p>
</div>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="/SDL-Surface.html">SDL::Surface</a> <a href="/SDL-Event.html">SDL::Event</a> <a href="/SDL-OpenGL.html">SDL::OpenGL</a></p>
+<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="SDL-Surface">SDL::Surface</a> <a href="SDL-Event">SDL::Event</a> <a href="SDL-OpenGL">SDL::OpenGL</a></p>
</div>
</div>
\ No newline at end of file
</pre>
</dd>
- <dt>The desired audio format. See <a href="/SDL-AudioSpec.html">SDL::AudioSpec</a></dt>
+ <dt>The desired audio format. See <a href="SDL-AudioSpec">SDL::AudioSpec</a></dt>
<dd>
<pre> $desired->format
</dd>
</dl>
<p>SDL::Audio::open reads these fields from the desired SDL::AudioSpec structure passed to the function and attempts to find an audio configuration matching your desired. As mentioned above, if the obtained parameter is NULL then SDL with convert from your desired audio settings to the hardware settings as it plays.</p>
-<p>If obtained is NULL then the desired SDL::AudioSpec is your working specification, otherwise the obtained SDL::AudioSpec becomes the working specification and the desired specification can be deleted. The data in the working specification is used when building <a href="/SDL-AudioCVT.html">SDL::AudioCVT</a>'s for converting loaded data to the hardware format.</p>
+<p>If obtained is NULL then the desired SDL::AudioSpec is your working specification, otherwise the obtained SDL::AudioSpec becomes the working specification and the desired specification can be deleted. The data in the working specification is used when building <a href="SDL-AudioCVT">SDL::AudioCVT</a>'s for converting loaded data to the hardware format.</p>
<p>SDL::Audio::open calculates the size and silence fields for both the $desired and $obtained specifications. The size field stores the total size of the audio buffer in bytes, while the silence stores the value used to represent silence in the audio buffer</p>
<p>The audio device starts out playing silence when it's opened, and should be enabled for playing by calling SDL::Audio::pause(0) when you are ready for your audio callback function to be called. Since the audio driver may modify the requested size of the audio buffer, you should allocate any local mixing buffers after you open the audio device. </p>
<pre> my $track = $CD->track($number);
</pre>
-<p>Retrives track description of track $number in CD. See <a href="/SDL-CDTrack.html">SDL::CDTrack</a>.</p>
+<p>Retrives track description of track $number in CD. See <a href="SDL-Track">SDL::CDTrack</a>.</p>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="/SDL-CDROM.html">SDL::CDROM</a>, <a href="/SDL-CDTrack.html">SDL::CDTrack</a></p>
+<p><a href="SDL-M">SDL::CDROM</a>, <a href="SDL-Track">SDL::CDTrack</a></p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="See_Also">See Also</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="See_Also_CONTENT">
-<p><a href="/SDL-CD.html">SDL::CD</a>, <a href="/SDL-CDTrack.html">SDL::CDTrack</a></p>
+<p><a href="SDL-D">SDL::CD</a>, <a href="SDL-Track">SDL::CDTrack</a></p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="/SDL-CDROM.html">SDL::CDROM</a>, <a href="/SDL-CD.html">SDL::CD</a></p>
+<p><a href="SDL-M">SDL::CDROM</a>, <a href="SDL-D">SDL::CD</a></p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="/SDL-Surface.html">SDL::Surface</a></p>
+<p><a href="SDL-Surface">SDL::Surface</a></p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="/SDL-Mouse.html">SDL::Mouse</a></p>
+<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="SDL-Mouse">SDL::Mouse</a></p>
</div>
</div>
\ No newline at end of file
<h2 id="poll_event_event">poll_event($event)</h2>
<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::set_video_mode.html">SDL::Video::set_video_mode</a>. </p>
+<p>If $event is not NULL, the next event is removed from the queue and stored in the <a href="SDL-Event">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>
</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::set_video_mode.html">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.html#set_video_mode">SDL::Video::set_video_mode</a>. </p>
</div>
<h3 id="RETURN-4">RETURN</h3>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="/SDL-Event.html">SDL::Event</a>, <a href="/SDL-Video.html">SDL::Video</a>
+<p><a href="SDL-Event">SDL::Event</a>, <a href="SDL-Video">SDL::Video</a>
</p>
</div>
</div>
<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="DESCRIPTION_CONTENT">
-<p><a href="/SDL-Font.html">SDL::Font</a> provides an interface to loading and using SFont style
-fonts with <a href="/SDL-Surface.html">SDL::Surface</a> objects. </p>
+<p><a href="SDL-Font">SDL::Font</a> provides an interface to loading and using SFont style
+fonts with <a href="SDL-Surface">SDL::Surface</a> objects. </p>
</div>
<h1 id="METHOD">METHOD</h1><p><a href="#TOP" class="toplink">Top</a></p>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="/SDL-Surface.html">SDL::Surface</a></p>
+<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="SDL-Surface">SDL::Surface</a></p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="DESCRIPTION_CONTENT">
-<p><a href="/SDL-Palette.html">SDL::Palette</a> provides an interface to the SDL_Palette structures,
+<p><a href="SDL-Palette">SDL::Palette</a> provides an interface to the SDL_Palette structures,
and can be used to set the color values of an existing palette's indexes.</p>
</div>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="/SDL-Color.html">SDL::Color</a> <a href="/SDL-Surface.html">SDL::Surface</a></p>
+<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="SDL-Color">SDL::Color</a> <a href="SDL-Surface">SDL::Surface</a></p>
</div>
</div>
\ No newline at end of file
</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::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::set_color_key.html">SDL::Video::set_color_key</a></p>
+<p>Load file for use as an image in a new <a href="SDL-Surface">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.
+Note: If the image format supports a transparent pixel, <a href="SDL-Image">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>
<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-get_error.html">SDL::get_error</a> to get cause of error.</p>
+<p>An image as a <a href="SDL-Surface">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>
</div>
<h2 id="load_typed_rw">load_typed_rw</h2>
<dl>
<dt>src</dt>
<dd>
- <p>The source <a href="/SDL-RWops.html">SDL::RWops</a> as a pointer. The image is loaded from this. </p>
+ <p>The source <a href="SDL-Wops">SDL::RWops</a> as a pointer. The image is loaded from this. </p>
</dd>
<dt>freesrc</dt>
<dd>
</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::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::set_color_key.html">SDL::Video::set_color_key</a></p>
+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 supports a transparent pixel, <a href="SDL-Image">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>
</div>
<h3 id="Transparency">Transparency </h3>
</div>
<h3 id="Return-2">Return </h3>
<div id="Return_CONTENT-2">
-<p>The image as a new <a href="/SDL-Surface.html">SDL::Surface</a>. NULL is returned on errors. </p>
+<p>The image as a new <a href="SDL-Surface">SDL::Surface</a>. NULL is returned on errors. </p>
</div>
<h2 id="is_TYPE">is_[TYPE]</h2>
<dt>is_XPM</dt>
<dt>is_XV</dt>
</dl>
-<p>These functions take a <a href="/SDL-RWOps.html">SDL::RWOps</a> as a parameter.</p>
+<p>These functions take a <a href="SDL-Ops">SDL::RWOps</a> as a parameter.</p>
</div>
<h3 id="Return-3">Return</h3>
<dt>load_XPM_rw</dt>
<dt>load_XV_rw</dt>
</dl>
-<p>These functions take a <a href="/SDL-RWop.html">SDL::RWop</a> as a parameter</p>
+<p>These functions take a <a href="SDL-Wop">SDL::RWop</a> as a parameter</p>
</div>
<h3 id="Return-4">Return</h3>
<div id="Return_CONTENT-4">
-<p>The image as a new <a href="/SDL-Surface.html">SDL::Surface</a>. NULL is returned on errors, like if the [TYPE] is not supported, or a read error.</p>
+<p>The image as a new <a href="SDL-Surface">SDL::Surface</a>. NULL is returned on errors, like if the [TYPE] is not supported, or a read error.</p>
</div>
<h3 id="Example-2">Example</h3>
</div>
<h3 id="Return-5">Return</h3>
<div id="Return_CONTENT-5">
-<p>The image as a new <a href="/SDL-Surface.html">SDL::Surface</a>. NULL is returned on errors, like if XPM is not supported, or a read error. </p>
+<p>The image as a new <a href="SDL-Surface">SDL::Surface</a>. NULL is returned on errors, like if XPM is not supported, or a read error. </p>
</div>
<h3 id="Example-3">Example</h3>
</div>
<h3 id="Return-6">Return</h3>
<div id="Return_CONTENT-6">
-<p>Returns a <a href="/SDL-Version.html">SDL::Version</a> object</p>
+<p>Returns a <a href="SDL-Version">SDL::Version</a> object</p>
</div>
<h3 id="Example-4">Example</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::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>
+<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>
</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-set_error.html">SDL::set_error</a></p>
+<p>Same as <a href="/SDL.html#set_error">SDL::set_error</a></p>
</div>
<h2 id="get_error">get_error</h2>
<div id="get_error_CONTENT">
-<p>Same as <a href="/SDL-get_error.html">SDL::get_error</a></p>
+<p>Same as <a href="/SDL.html#get_error">SDL::get_error</a></p>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="/SDL.html">SDL</a>, <a href="/SDL-Surface.html">SDL::Surface</a>, <a href="/SDL-Video.html">SDL::Video</a>, <a href="/SDL-RWOps.html">SDL::RWOps</a></p>
+<p><a href="SDL">SDL</a>, <a href="SDL-Surface">SDL::Surface</a>, <a href="SDL-Video">SDL::Video</a>, <a href="SDL-Ops">SDL::RWOps</a></p>
</div>
</div>
\ No newline at end of file
<pre> int SDL::Joystick::num_buttons( object );
</pre>
-<p>Gets the number of joystick buttons from a previously opened joystick. See <a href="/SDL-Joystick::open.html">SDL::Joystick::open</a></p>
+<p>Gets the number of joystick buttons from a previously opened joystick. See <a href="/SDL-Joystick.html#open">SDL::Joystick::open</a></p>
</div>
<h2 id="update">update</h2>
<ul><li><a href="#NAME">NAME</a></li>
<li><a href="#CATEGORY">CATEGORY</a></li>
-<li><a href="#DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#METHODS">METHODS</a>
<ul><li><a href="#reserve_channels">reserve_channels</a></li>
<li><a href="#group_channel">group_channel</a></li>
<h1 id="NAME">NAME</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="NAME_CONTENT">
-<p>SDL::Mixer::Groups -- SDL_Mixer groups functions and bindings</p>
+<p>SDL::Mixer::Groups - Audio channel group functions</p>
</div>
<h1 id="CATEGORY">CATEGORY</h1><p><a href="#TOP" class="toplink">Top</a></p>
<p>Mixer</p>
</div>
-<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
-<div id="DESCRIPTION_CONTENT">
-
-</div>
<h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="METHODS_CONTENT">
</div>
<h2 id="reserve_channels">reserve_channels</h2>
<div id="reserve_channels_CONTENT">
+<pre> my $reserved = SDL::Mixer::Groups::reserve_channels( $num );
+
+</pre>
+<p><code>$num</code> is the number of channels to reserve from default mixing. Zero removes all reservations. </p>
+<p>Reserve <code>$num</code> channels from being used when playing samples when passing in <code>-1</code> as a channel number to playback functions.
+The channels are reserved starting from channel <code>0</code> to <code>$num-1</code>. Passing in zero will unreserve all channels. Normally SDL_mixer starts
+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>
+</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>
</div>
<h2 id="group_channel">group_channel</h2>
<div id="group_channel_CONTENT">
+<pre> my $grouped = SDL::Mixer::Groups::group_channel( $channel, $group );
+
+</pre>
+<p>Add a channel to group id (any positive integer), or reset it's group to the default group by passing (-1).</p>
+<p>Returns: True(1) on success. False(0) is returned when the channel specified is invalid.</p>
</div>
<h2 id="group_channels">group_channels</h2>
<div id="group_channels_CONTENT">
+<pre> my $grouped = SDL::Mixer::Groups::group_channels( $from_channel, $to_channel, $group );
+
+</pre>
+<p>Add a range of channels to group id (any positive integer), or reset their group to the default group by passing (-1).</p>
+<p>Returns: The number of affected channels.</p>
</div>
<h2 id="group_available">group_available</h2>
<div id="group_available_CONTENT">
+<pre> my $channel = SDL::Mixer::Groups::group_count( $group );
+
+</pre>
+<p><code>group_newer</code> returns the first available channel of this group.</p>
</div>
<h2 id="group_count">group_count</h2>
<div id="group_count_CONTENT">
+<pre> my $channels = SDL::Mixer::Groups::group_count( $group );
+
+</pre>
+<p><code>group_newer</code> returns the number of channels in this group.</p>
</div>
<h2 id="group_oldest">group_oldest</h2>
<div id="group_oldest_CONTENT">
+<pre> my $channel = SDL::Mixer::Groups::group_oldest( $group );
+
+</pre>
+<p><code>group_newer</code> returns the channel number which started to play at first.</p>
</div>
<h2 id="group_newer">group_newer</h2>
<div id="group_newer_CONTENT">
+<pre> my $channel = SDL::Mixer::Groups::group_newer( $group );
+
+</pre>
+<p><code>group_newer</code> returns the channel number which started to play at last.</p>
</div>
<h2 id="fade_out_group">fade_out_group</h2>
<div id="fade_out_group_CONTENT">
+<pre> SDL::Mixer::Groups::fade_out_group( $group, $ms );
+
+</pre>
+<p>Fades out the channels by the given group id. The fade-out-time is specified by <code>$ms</code>.</p>
+<p>Retuns the number of affected channels.</p>
</div>
<h2 id="halt_group">halt_group</h2>
<div id="halt_group_CONTENT">
+<pre> SDL::Mixer::Groups::hals_group( $group );
+
+</pre>
+<p>Halts the channels by the given group id.</p>
+<p>Retuns <code>0</code>.</p>
</div>
</div>
\ No newline at end of file
All the music playing and stopping functions have no effect on music after this. Pause and resume will work.
Using a custom music player and the internal music player is not possible, the custom music player takes priority. </p>
<p>To stop the custom music player call <code>hook_music()</code> without arguments.</p>
-<p><strong>Note</strong>: NEVER call <code>SDL::Mixer</code> functions, nor <a href="/SDL-Audio::lock.html">SDL::Audio::lock</a>, from a callback function.</p>
+<p><strong>Note</strong>: NEVER call <code>SDL::Mixer</code> functions, nor <a href="/SDL-Audio.html#lock">SDL::Audio::lock</a>, from a callback function.</p>
<p><strong>Note</strong>: At program termination also call <code>SDL::Mixer::Music::hook_music()</code> to stop this callback.</p>
<p>Example:</p>
<pre> my $callback = sub
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::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
+<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
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>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="http://search.cpan.org/perldoc?perl">perl</a>, <a href="/SDL-Mixer::Channels.html">SDL::Mixer::Channels</a>, <a href="/SDL-Mixer::Effects.html">SDL::Mixer::Effects</a>, <a href="/SDL-Mixer::Groups.html">SDL::Mixer::Groups</a>, <a href="/SDL-Mixer::Music.html">SDL::Mixer::Music</a>.</p>
+<p><a href="http://search.cpan.org/perldoc?perl">perl</a>, <a href="SDL-Mixer-Channels">SDL::Mixer::Channels</a>, <a href="SDL-Mixer-Effects">SDL::Mixer::Effects</a>, <a href="SDL-Mixer-Groups">SDL::Mixer::Groups</a>, <a href="SDL-Mixer-Music">SDL::Mixer::Music</a>.</p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="DESCRIPTION_CONTENT">
-<p><a href="/SDL-Music.html">SDL::Music</a> is used to load music files for use with <a href="/SDL-Mixer.html">SDL::Mixer</a>.
+<p><a href="SDL-Music">SDL::Music</a> is used to load music files for use with <a href="SDL-Mixer">SDL::Mixer</a>.
To load a music file one simply creates a new object passing the filename
to the constructor:</p>
<pre> my $music = new SDL::Music 'my_song.ogg';
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="/SDL-Mixer.html">SDL::Mixer</a></p>
+<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="SDL-Mixer">SDL::Mixer</a></p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="DESCRIPTION_CONTENT">
-<p><a href="/SDL-OpenGL.html">SDL::OpenGL</a> is a perl module which when used by your application
+<p><a href="SDL-OpenGL">SDL::OpenGL</a> is a perl module which when used by your application
exports the gl* and glu* functions into your application's primary namespace.
Most of the functions described in the OpenGL 1.3 specification are currently
supported in this fashion. As the implementation of the OpenGL bindings that
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="/SDL-App.html">SDL::App</a></p>
+<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="SDL-App">SDL::App</a></p>
</div>
</div>
\ No newline at end of file
<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::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>
+<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>
</div>
<h2 id="hw_overlay">hw_overlay</h2>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="/SDL-Color.html">SDL::Color</a> <a href="/SDL-Surface.html">SDL::Surface</a></p>
+<p><a href="SDL-Color">SDL::Color</a> <a href="SDL-Surface">SDL::Surface</a></p>
</div>
</div>
\ No newline at end of file
<pre> $surface->format->palette;
</pre>
-<p>Returns the <code>SDL_Palette</code> and <a href="/SDL-Palette.html">SDL::Palette</a> of the format of the surface.</p>
+<p>Returns the <code>SDL_Palette</code> and <a href="SDL-Palette">SDL::Palette</a> of the format of the surface.</p>
</div>
<h2 id="BitsPerPixel">BitsPerPixel </h2>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="/SDL-Surface.html">SDL::Surface</a></p>
+<p><a href="SDL-Surface">SDL::Surface</a></p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="/SDL-Surface.html">SDL::Surface</a></p>
+<p><a href="SDL-Surface">SDL::Surface</a></p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="/SDL-App.html">SDL::App</a></p>
+<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="SDL-App">SDL::App</a></p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="DESCRIPTION_CONTENT">
-<p><a href="/SDL-Sound.html">SDL::Sound</a> is a module for loading WAV files for sound effects.
-The file can be loaded by creating a new <a href="/SDL-Sound.html">SDL::Sound</a> object by
+<p><a href="SDL-Sound">SDL::Sound</a> is a module for loading WAV files for sound effects.
+The file can be loaded by creating a new <a href="SDL-Sound">SDL::Sound</a> object by
passing the filename to the constructor;</p>
<pre> my $sound = new SDL::Sound 'my_sfx.wav';
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="/SDL-Mixer.html">SDL::Mixer</a></p>
+<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="SDL-Mixer">SDL::Mixer</a></p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="SYNOPSIS">SYNOPSIS</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SYNOPSIS_CONTENT">
-<p>The main surface (display) is provided by <a href="/SDL-Video::set_video_mode.html">SDL::Video::set_video_mode</a>.
+<p>The main surface (display) is provided by <a href="/SDL-Video.html#set_video_mode">SDL::Video::set_video_mode</a>.
use SDL; #provides flags & constants
use SDL::Video; #provides access to set_video_mode
use SDL::Surface; #provides access to SDL_Surface struct internals</p>
</div>
<h2 id="format">format</h2>
<div id="format_CONTENT">
-<p>The format of the pixels stored in the surface. See <a href="/SDL-PixelFormat.html">SDL::PixelFormat</a></p>
+<p>The format of the pixels stored in the surface. See <a href="SDL-PixelFormat">SDL::PixelFormat</a></p>
<pre> my $format = $surface->format;
</pre>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="/SDL.html">SDL</a>, <a href="/SDL-PixelFormat.html">SDL::PixelFormat</a>, <a href="/SDL-Video.html">SDL::Video</a>, <a href="/SDL-Rect.html">SDL::Rect</a></p>
+<p><a href="SDL">SDL</a>, <a href="SDL-PixelFormat">SDL::PixelFormat</a>, <a href="SDL-Video">SDL::Video</a>, <a href="SDL-Rect">SDL::Rect</a></p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="DESCRIPTION_CONTENT">
-<p><a href="/SDL-TTFont.html">SDL::TTFont</a> is a module for applying true type fonts to <a href="/SDL-Surface.html">SDL::Surface</a>.</p>
+<p><a href="SDL-Font">SDL::TTFont</a> is a module for applying true type fonts to <a href="SDL-Surface">SDL::Surface</a>.</p>
</div>
<h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p>
</div>
<h2 id="print_surface_top_left_text">print ($surface, $top, $left, @text)</h2>
<div id="print_surface_top_left_text_CONTENT">
-<p>Directly draws text to an existing surface. Receives the target <a href="/SDL-Surface.html">SDL::Surface</a>
+<p>Directly draws text to an existing surface. Receives the target <a href="SDL-Surface">SDL::Surface</a>
object and the relative top (y) and left (x) coordinates to put the text in.
The last parameter may be a string or an array or strings with the text to be
written.</p>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="http://search.cpan.org/perldoc?perl">perl</a>, <a href="/SDL.html">SDL</a>, <a href="/SDL-Surface.html">SDL::Surface</a>
+<p><a href="http://search.cpan.org/perldoc?perl">perl</a>, <a href="SDL">SDL</a>, <a href="SDL-Surface">SDL::Surface</a>
</p>
</div>
</div>
<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="DESCRIPTION_CONTENT">
-<p><a href="/SDL-Tool::Font.html">SDL::Tool::Font</a> provides a unified interface for applying
+<p><a href="SDL-Tool-Font">SDL::Tool::Font</a> provides a unified interface for applying
True Type and SFont fonts to various surfaces.</p>
</div>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="/SDL-Font.html">SDL::Font</a> <a href="/SDL-TTFont.html">SDL::TTFont</a> <a href="/SDL-Surface.html">SDL::Surface</a></p>
+<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="SDL-Font">SDL::Font</a> <a href="SDL-Font">SDL::TTFont</a> <a href="SDL-Surface">SDL::Surface</a></p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="DESCRIPTION_CONTENT">
-<p><a href="/SDL-Tool::Graphic.html">SDL::Tool::Graphic</a> is a module for zooming and rotating <a href="/SDL-Surface.html">SDL::Surface</a> objects.</p>
+<p><a href="SDL-Tool-Graphic">SDL::Tool::Graphic</a> is a module for zooming and rotating <a href="SDL-Surface">SDL::Surface</a> objects.</p>
</div>
<h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p>
</div>
<h2 id="zoom_surface_xzoom_yzoom_smooth">zoom ( surface, xzoom, yzoom, smooth )</h2>
<div id="zoom_surface_xzoom_yzoom_smooth_CONT">
-<p><code>SDL::Tool::Graphic::zoom</code> scales a <a href="/SDL-Surface.html">SDL::Surface</a> along the two axis independently.</p>
+<p><code>SDL::Tool::Graphic::zoom</code> scales a <a href="SDL-Surface">SDL::Surface</a> along the two axis independently.</p>
</div>
<h2 id="rotoZoom_surface_angle_zoom_smooth">rotoZoom ( surface, angle, zoom, smooth )</h2>
<div id="rotoZoom_surface_angle_zoom_smooth_C">
-<p><code>SDL::Tool::Graphic::rotoZoom</code> rotates and fixed axis zooms a <a href="/SDL-Surface.html">SDL::Surface</a>.</p>
+<p><code>SDL::Tool::Graphic::rotoZoom</code> rotates and fixed axis zooms a <a href="SDL-Surface">SDL::Surface</a>.</p>
</div>
<h2 id="grayScale_surface">grayScale ( surface )</h2>
<div id="grayScale_surface_CONTENT">
-<p><code>SDL::Tool::Graphic::grayScale</code> rotates and fixed axis zooms a <a href="/SDL-Surface.html">SDL::Surface</a>.</p>
+<p><code>SDL::Tool::Graphic::grayScale</code> rotates and fixed axis zooms a <a href="SDL-Surface">SDL::Surface</a>.</p>
</div>
<h2 id="invertColor_surface">invertColor ( surface )</h2>
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="/SDL-Surface.html">SDL::Surface</a></p>
+<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="SDL-Surface">SDL::Surface</a></p>
</div>
</div>
\ No newline at end of file
<div id="Redrawing_the_Screen_CONTENT">
<p>Since you have to draw the screen in the right order once to start with it's
pretty easy to make this into a loop and redraw things in the right order for
-every frame. Given a <a href="/SDL-App.html">SDL::App</a> object <code>$app</code>, a <a href="/SDL-Rect.html">SDL::Rect</a> <code>$rect</code>, and
-a <a href="/SDL-Color.html">SDL::Color</a> <code>$color</code>, you only have to create a new SDL::Rect <code>$bg</code>,
+every frame. Given a <a href="SDL-App">SDL::App</a> object <code>$app</code>, a <a href="SDL-Rect">SDL::Rect</a> <code>$rect</code>, and
+a <a href="SDL-Color">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 SDL::Color
<code>$bg_color</code>, representing the background color. You can write a
<code>draw_frame()</code> function as follows:</p>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
<dl>
- <dt><a href="/SDL-Tutorial::Drawing.html">SDL::Tutorial::Drawing</a></dt>
+ <dt><a href="SDL-Tutorial-Drawing">SDL::Tutorial::Drawing</a></dt>
<dd>
<p>basic drawing with SDL Perl</p>
</dd>
- <dt><a href="/SDL-Tutorial::Images.html">SDL::Tutorial::Images</a></dt>
+ <dt><a href="SDL-Tutorial-Images">SDL::Tutorial::Images</a></dt>
<dd>
<p>animating images</p>
</dd>
</div>
<h2 id="Loading_Images">Loading Images</h2>
<div id="Loading_Images_CONTENT">
-<p>As usual, start with an <a href="/SDL-App.html">SDL::App</a> object representing the image window. Then
+<p>As usual, start with an <a href="SDL-App">SDL::App</a> object representing the image window. Then
preload the image file. This is easy; just pass the <code>name</code> parameter to the
-<a href="/SDL-Surface.html">SDL::Surface</a> constructor:</p>
+<a href="SDL-Surface">SDL::Surface</a> constructor:</p>
<p> </p>
<pre> use SDL::Surface;
</pre>
<p> </p>
-<p>Here we have two <a href="/SDL-Rect.html">SDL::Rect</a> objects which represent rectangular regions of a
+<p>Here we have two <a href="SDL-Rect">SDL::Rect</a> objects which represent rectangular regions of a
Surface. <code>$frame_rect</code> represents the entire area of <code>$frame</code>, while
<code>$dest_rect</code> represents the area of the main window in which to blit the
frame. This may be clearer with more descriptive variable names:</p>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
<dl>
- <dt><a href="/SDL-Tutorial.html">SDL::Tutorial</a></dt>
+ <dt><a href="SDL-Tutorial">SDL::Tutorial</a></dt>
<dd>
<p>basic SDL tutorial</p>
</dd>
- <dt><a href="/SDL-Tutorial::Animation.html">SDL::Tutorial::Animation</a></dt>
+ <dt><a href="SDL-Tutorial-Animation">SDL::Tutorial::Animation</a></dt>
<dd>
<p>non-image animation</p>
</dd>
</pre>
<p> </p>
-<p>That creates a new <a href="/SDL-Game::Rect.html">SDL::Game::Rect</a> object, a rectangle, with the given width/height dimensions and in the given top/left position of the screen.</p>
+<p>That creates a new <a href="SDL-Game-Rect">SDL::Game::Rect</a> object, a rectangle, with the given width/height dimensions and in the given top/left position of the screen.</p>
<p>Wait. Did I say... <i><screen</i>>?</p>
</div>
<div id="Part_2_Our_first_event_tracking_user-2">
<p># TODO</p>
<p>Now let's query some events!</p>
-<p>First, we need to use the <a href="/SDL-Event.html">SDL::Event</a> module. Add this to the beginning of our code:</p>
+<p>First, we need to use the <a href="SDL-Event">SDL::Event</a> module. Add this to the beginning of our code:</p>
<p> </p>
<pre> use SDL::Event;
my $event = SDL::Event->new;
<h2 id="Surfaces">Surfaces</h2>
<div id="Surfaces_CONTENT">
<p>All graphics in SDL live on a surface. You'll need at least one. That's what
-<a href="/SDL-App.html">SDL::App</a> provides.</p>
+<a href="SDL-App">SDL::App</a> provides.</p>
<p>Of course, before you can get a surface, you need to initialize your video
mode. SDL gives you several options, including whether to run in a window or
take over the full screen, the size of the window, the bit depth of your
<h2 id="Working_With_The_App">Working With The App</h2>
<div id="Working_With_The_App_CONTENT">
<p>Since <code>$app</code> from the code above is just an SDL surface with some extra sugar,
-it behaves much like <a href="/SDL-Surface.html">SDL::Surface</a>. In particular, the all-important <code>blit</code>
-and <code>update</code> methods work. You'll need to create <a href="/SDL-Rect.html">SDL::Rect</a> objects
+it behaves much like <a href="SDL-Surface">SDL::Surface</a>. In particular, the all-important <code>blit</code>
+and <code>update</code> methods work. You'll need to create <a href="SDL-Rect">SDL::Rect</a> objects
representing sources of graphics to draw onto the <code>$app</code>'s surface, <code>blit</code>
them there, then <code>update</code> the <code>$app</code>.</p>
<p><strong>Note:</strong> "blitting" is copying a chunk of memory from one place to another.</p>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
<dl>
- <dt><a href="/SDL-Tutorial::Drawing.html">SDL::Tutorial::Drawing</a></dt>
+ <dt><a href="SDL-Tutorial-Drawing">SDL::Tutorial::Drawing</a></dt>
<dd>
<p>basic drawing with rectangles</p>
</dd>
- <dt><a href="/SDL-Tutorial::Animation.html">SDL::Tutorial::Animation</a></dt>
+ <dt><a href="SDL-Tutorial-Animation">SDL::Tutorial::Animation</a></dt>
<dd>
<p>basic rectangle animation</p>
</dd>
- <dt><a href="/SDL-Tutorial::Images.html">SDL::Tutorial::Images</a></dt>
+ <dt><a href="SDL-Tutorial-Images">SDL::Tutorial::Images</a></dt>
<dd>
<p>image loading and animation</p>
</dd>
<pre> my $surface = SDL::Video::get_video_surface();
</pre>
-<p>This function returns the current display <a href="/SDL-Surface.html">SDL::Surface</a>. If SDL is doing format conversion on the display surface, this
+<p>This function returns the current display <a href="SDL-Surface">SDL::Surface</a>. If SDL is doing format conversion on the display surface, this
function returns the publicly visible surface, not the real video surface.</p>
<p>Example:</p>
<pre> # somewhere after you set the video mode
<pre> my $video_info = SDL::Video::get_video_info();
</pre>
-<p>This function returns a read-only <a href="/SDL-VideoInfo.html">SDL::VideoInfo</a> containing information about the video hardware. If it is called before
+<p>This function returns a read-only <a href="SDL-VideoInfo">SDL::VideoInfo</a> containing information about the video hardware. If it is called before
<a href="#set_video_mode">SDL::Video::set_video_mode</a>, the <code>vfmt</code> member of the returned structure will contain the pixel
format of the <strong>best</strong> video mode. </p>
<p>Example:</p>
</pre>
<p>Sets up a video mode with the specified width, height, bits-per-pixel and flags.
-<code>set_video_mode</code> returns a <a href="/SDL-Surface.html">SDL::Surface</a> on success otherwise it returns undef on error, the error message is retrieved
+<code>set_video_mode</code> returns a <a href="SDL-Surface">SDL::Surface</a> on success otherwise it returns undef on error, the error message is retrieved
using <code>SDL::get_error</code>.</p>
</div>
<pre> $converted_surface = SDL::Video::convert_surface( $surface, $format, $flags );
</pre>
-<p>Creates a new SDL::surface of the specified <a href="/SDL-PixelFormat.html">SDL::PixelFormat</a>, and then copies and maps the given surface to it.
+<p>Creates a new SDL::surface of the specified <a href="SDL-PixelFormat">SDL::PixelFormat</a>, and then copies and maps the given surface to it.
It is also useful for making a copy of a surface.</p>
-<p>The flags parameter is passed to <a href="/SDL-Surface.html">SDL::Surface</a><code>->new</code> and has those semantics.
+<p>The flags parameter is passed to <a href="SDL-Surface">SDL::Surface</a><code>->new</code> and has those semantics.
This function is used internally by <a href="#display_format">SDL::Video::display_format</a>.
This function can only be called after <code>SDL::init</code>. </p>
-<p>it returns a <a href="/SDL-Surface.html">SDL::Surface</a> on success or <code>undef</code> on error.</p>
+<p>it returns a <a href="SDL-Surface">SDL::Surface</a> on success or <code>undef</code> on error.</p>
</div>
<h2 id="display_format">display_format</h2>
<pre> $surface = SDL::Video::load_BMP( $filename );
</pre>
-<p>Loads a <a href="/SDL-Surface.html">SDL::Surface</a> from a named Windows BMP file.
-<code>SDL::Video::load_BMP</code> returns a <a href="/SDL-Surface.html">SDL::Surface</a> on success or <code>undef</code> on error.</p>
+<p>Loads a <a href="SDL-Surface">SDL::Surface</a> from a named Windows BMP file.
+<code>SDL::Video::load_BMP</code> returns a <a href="SDL-Surface">SDL::Surface</a> on success or <code>undef</code> on error.</p>
<p><strong>Note</strong>: When loading a 24-bit Windows BMP file, pixel data points are loaded as blue, green, red, and NOT red, green, blue (as one might expect). </p>
<pre> use SDL;
use SDL::Video;
<pre> $saved_BMP = SDL::Video::save_BMP( $surface, $filename );
</pre>
-<p>Saves the given <a href="/SDL-Surface.html">SDL::Surface</a> as a Windows BMP file named filename.
+<p>Saves the given <a href="SDL-Surface">SDL::Surface</a> as a Windows BMP file named filename.
it returns 0 on success or -1 on error.</p>
</div>
<pre> $fill_rect = SDL::Video::fill_rect( $dest, $dest_rect, $pixel );
</pre>
-<p>This function performs a fast fill of the given <a href="/SDL-Rect.html">SDL::Rect</a> with the given <a href="/SDL-PixelFormat.html">SDL::PixelFormat</a>. If dest_rect is NULL, the whole surface
+<p>This function performs a fast fill of the given <a href="SDL-Rect">SDL::Rect</a> with the given <a href="SDL-PixelFormat">SDL::PixelFormat</a>. If dest_rect is NULL, the whole surface
will be filled with color.</p>
<p>The color should be a pixel of the format used by the surface, and can be generated by the <a href="#map_RGB">SDL::Video::map_RGB</a> or
<code>SDL::Video::map_RGBA|/map_RGBA</code> functions. If the color value contains an alpha value then the destination is simply "filled" with that
<pre> int SDL::Video::lock_surface( $surface );
</pre>
-<p><code>SDL::Video::lock_surface</code> sets up the given <a href="/SDL-Surface.html">SDL::Surface</a> for directly accessing the pixels.
+<p><code>SDL::Video::lock_surface</code> sets up the given <a href="SDL-Surface">SDL::Surface</a> for directly accessing the pixels.
Between calls to SDL::lock_surface and SDL::unlock_surface, you can write to ( <code>surface-</code>set_pixels>) and read from ( <code>surface-</code>get_pixels> ),
using the pixel format stored in <code>surface-</code>format>.
Once you are done accessing the surface, you should use <a href="#unlock_surface">SDL::Video::unlock_surface</a> to release the lock.</p>
<pre> SDL::Video::set_clip_rect( $surface, $rect );
</pre>
-<p>Sets the clipping rectangle for the given <a href="/SDL-Surface.html">SDL::Surface</a>. When this surface is the destination of a blit, only the area within the clip
+<p>Sets the clipping rectangle for the given <a href="SDL-Surface">SDL::Surface</a>. When this surface is the destination of a blit, only the area within the clip
rectangle will be drawn into.
The rectangle pointed to by rect will be clipped to the edges of the surface so that the clip rectangle for a surface can never fall
outside the edges of the surface.
<pre> SDL::Video::get_clip_rect( $surface, $rect );
</pre>
-<p>Gets the clipping rectangle for the given <a href="/SDL-Surface.html">SDL::Surface</a>. When this surface is the destination of a blit, only the area within the clip
+<p>Gets the clipping rectangle for the given <a href="SDL-Surface">SDL::Surface</a>. When this surface is the destination of a blit, only the area within the clip
rectangle is drawn into.
The rectangle pointed to by rect will be filled with the clipping rectangle of the surface.
<code>SDL::Video::get_clip_rect</code> doesn't returns anything;</p>
<pre> SDL::Video::blit_surface( $src_surface, $src_rect, $dest_surface, $dest_rect );
</pre>
-<p>This performs a fast blit from the given source <a href="/SDL-Surface.html">SDL::Surface</a> to the given destination <a href="/SDL-Surface.html">SDL::Surface</a>.
+<p>This performs a fast blit from the given source <a href="SDL-Surface">SDL::Surface</a> to the given destination <a href="SDL-Surface">SDL::Surface</a>.
The width and height in <code>src_surface</code> determine the size of the copied rectangle. Only the position is used in the <code>dst_rect</code>
(the width and height are ignored). Blits with negative <code>dst_rect</code> coordinates will be clipped properly.
If <code>src_rect</code> is NULL, the entire surface is copied. If <code>dst_rect</code> is NULL, then the destination position (upper left corner) is (0, 0).
<p>When surface is the surface associated with the current display, the display colormap will be updated with the requested colors.
If <code>SDL_HWPALETTE</code> was set in <a href="#set_video_mode">SDL::Video::set_video_mode</a> flags, <code>SDL::Video::set_colors</code> will always return 1, and the
palette is guaranteed to be set the way you desire, even if the window colormap has to be warped or run under emulation.
-The color components of a <a href="/SDL-Color.html">SDL::Color</a> structure are 8-bits in size, giving you a total of 2563 = 16777216 colors.
+The color components of a <a href="SDL-Color">SDL::Color</a> structure are 8-bits in size, giving you a total of 2563 = 16777216 colors.
Palettized (8-bit) screen surfaces with the <code>SDL_HWPALETTE</code> flag have two palettes, a logical palette that is used for mapping blits to/from
the surface and a physical palette (that determines how the hardware will map the colors to the display).
<code>SDL::Video::set_colors</code> modifies both palettes (if present), and is equivalent to calling <a href="#set_palette">SDL::Video::set_palette</a> with the
<pre> $pixel = SDL::Video::map_RGB( $pixel_format, $r, $g, $b );
</pre>
-<p>Maps the RGB color value to the specified <a href="/SDL-PixelFormat.html">SDL::PixelFormat</a> and returns the pixel value as a 32-bit int.
+<p>Maps the RGB color value to the specified <a href="SDL-PixelFormat">SDL::PixelFormat</a> and returns the pixel value as a 32-bit int.
If the format has a palette (8-bit) the index of the closest matching color in the palette will be returned.
If the specified pixel format has an alpha component it will be returned as all 1 bits (fully opaque). </p>
<p><code>SDL::Video::map_RGB</code> returns a pixel value best approximating the given RGB color value for a given pixel format.
-If the <a href="/SDL-PixelFormat.html">SDL::PixelFormat</a>'s bpp (color depth) is less than 32-bpp then the unused upper bits of the return value can safely be ignored
+If the <a href="SDL-PixelFormat">SDL::PixelFormat</a>'s bpp (color depth) is less than 32-bpp then the unused upper bits of the return value can safely be ignored
(e.g., with a 16-bpp format the return value can be assigned to a Uint16, and similarly a Uint8 for an 8-bpp format).</p>
<pre> use SDL;
use SDL::Video;
<pre> $pixel = SDL::Video::map_RGB( $pixel_format, $r, $g, $b, $a );
</pre>
-<p>Maps the RGBA color value to the specified <a href="/SDL-PixelFormat.html">SDL::PixelFormat</a> and returns the pixel value as a 32-bit int.
+<p>Maps the RGBA color value to the specified <a href="SDL-PixelFormat">SDL::PixelFormat</a> and returns the pixel value as a 32-bit int.
If the format has a palette (8-bit) the index of the closest matching color in the palette will be returned.
If the specified pixel format has no alpha component the alpha value will be ignored (as it will be in formats with a palette). </p>
<p>A pixel value best approximating the given RGBA color value for a given pixel format.
</div>
<h1 id="Video_Overlay_Functions">Video Overlay Functions</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="Video_Overlay_Functions_CONTENT">
-<p>see <a href="/SDL-Overlay.html">SDL::Overlay</a> </p>
+<p>see <a href="SDL-Overlay">SDL::Overlay</a> </p>
</div>
<h2 id="lock_YUV_overlay">lock_YUV_overlay</h2>
<pre> $display_overlay = SDL::Video::display_YUV_overlay( $overlay, $dstrect );
</pre>
-<p>Blit the overlay to the display surface specified when the overlay was created. The <a href="/SDL-Rect.html">SDL::Rect</a> structure, <code>dstrect</code>, specifies a rectangle
+<p>Blit the overlay to the display surface specified when the overlay was created. The <a href="SDL-Rect">SDL::Rect</a> structure, <code>dstrect</code>, specifies a rectangle
on the display where the overlay is drawn. The <code>x</code> and <code>y</code> fields of <code>dstrect</code> specify the upper left location in display coordinates.
The overlay is scaled (independently in x and y dimensions) to the size specified by dstrect, and is <code>optimized</code> for 2x scaling</p>
<p>It returns <code>0</code> on success or <code>-1</code> on error.</p>
</pre>
<p>Sets the icon for the display window. Win32 icons must be 32x32.</p>
-<p>This function must be called before the first call to <a href="#set_video_mode">SDL::Video::set_video_mode</a>. Note that this means <a href="/SDL-Image.html">SDL::Image</a>
+<p>This function must be called before the first call to <a href="#set_video_mode">SDL::Video::set_video_mode</a>. Note that this means <a href="SDL-Image">SDL::Image</a>
cannot be used.</p>
<p>The shape is determined by the colorkey or alpha channel of the icon, if any. If neither of those are present, the icon is made opaque
(no transparency).</p>
</pre>
<p>If the application is running in a window managed environment SDL attempts to iconify/minimise it. If <code>wm_iconify_window</code> is successful,
-the application will receive a <code>SDL_APPACTIVE</code> loss event (see Application visibility events at <a href="/SDL-Event.html">SDL::Event</a>).</p>
+the application will receive a <code>SDL_APPACTIVE</code> loss event (see Application visibility events at <a href="SDL-Event">SDL::Event</a>).</p>
<p>Returns non-zero on success or 0 if iconification is not supported or was refused by the window manager. </p>
<p>Example:</p>
<pre> use SDL;
</div>
<h2 id="Category_Objects">Category Objects</h2>
<div id="Category_Objects_CONTENT">
-<p><a href="/SDL-Surface.html">SDL::Surface</a>, <a href="/SDL-Overlay.html">SDL::Overlay</a>, <a href="/SDL-Color.html">SDL::Color</a>,
-<a href="/SDL-Rect.html">SDL::Rect</a>, <a href="/SDL-Palette.html">SDL::Palette</a>, <a href="/SDL-PixelFormat.html">SDL::PixelFormat</a>,
-<a href="/SDL-VideoInfo.html">SDL::VideoInfo</a></p>
+<p><a href="SDL-Surface">SDL::Surface</a>, <a href="SDL-Overlay">SDL::Overlay</a>, <a href="SDL-Color">SDL::Color</a>,
+<a href="SDL-Rect">SDL::Rect</a>, <a href="SDL-Palette">SDL::Palette</a>, <a href="SDL-PixelFormat">SDL::PixelFormat</a>,
+<a href="SDL-VideoInfo">SDL::VideoInfo</a></p>
</div>
</div>
\ No newline at end of file
</div>
<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="SEE_ALSO_CONTENT">
-<p><a href="/SDL-Video.html">SDL::Video</a>, <a href="/SDL-PixelFormat.html">SDL::PixelFormat</a></p>
+<p><a href="SDL-Video">SDL::Video</a>, <a href="SDL-PixelFormat">SDL::PixelFormat</a></p>
</div>
</div>
\ No newline at end of file
<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-Time.html">SDL::Time</a></td><td>- a 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-3-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-7-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-2-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-3-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-6-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-7-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-3-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-6-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-7-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-3-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-1-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-6-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-6-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-3-mini.png" alt="thumb" /></td><td><a href="SDL-Cookbook.html">SDL::Cookbook</a></td><td></td></tr><tr><td><img src="assets/bubble-7-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-1-mini.png" alt="thumb" /></td><td><a href="SDL-App.html">SDL::App</a></td><td>- a SDL perl 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-5-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-4-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-2-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-4-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-4-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-3-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Effects.html">SDL::Mixer::Effects</a></td><td>- SDL_Mixer sound effect functions and bindings</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Groups.html">SDL::Mixer::Groups</a></td><td>- SDL_Mixer groups functions and bindings</td></tr><tr><td><img src="assets/bubble-3-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-3-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-6-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-4-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 style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">TODO</strong></td></tr><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Core</strong></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-1-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-5-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-7-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-3-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">Tutorials</strong></td></tr><tr><td><img src="assets/bubble-1-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-2-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-1-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Images.html">SDL::Tutorial::Images</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><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Pong.html">SDL::Tutorial::Pong</a></td><td>- Get started pong</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Tetris.html">SDL::Tutorial::Tetris</a></td><td>- Let's Make Tetris</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="SDL-Font.html">SDL::Font</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Game-Palette.html">SDL::Game::Palette</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-3-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-Music.html">SDL::Music</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-OpenGL.html">SDL::OpenGL</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-SFont.html">SDL::SFont</a></td><td>- a 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><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Sound.html">SDL::Sound</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-TTFont.html">SDL::TTFont</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Tool-Font.html">SDL::Tool::Font</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Tool-Graphic.html">SDL::Tool::Graphic</a></td><td></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-3-mini.png" alt="thumb" /></td><td><a href="SDL-Time.html">SDL::Time</a></td><td>- a 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-5-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-3-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-3-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-1-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-6-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-6-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-5-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-4-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-3-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-4-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-2-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-5-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-7-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-2-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-3-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-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="SDL-App.html">SDL::App</a></td><td>- a SDL perl 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-5-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-2-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-3-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-1-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-6-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Effects.html">SDL::Mixer::Effects</a></td><td>- SDL_Mixer sound effect functions and bindings</td></tr><tr><td><img src="assets/bubble-5-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-3-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-2-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-4-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 style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">TODO</strong></td></tr><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Core</strong></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-4-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-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">Tutorials</strong></td></tr><tr><td><img src="assets/bubble-1-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-Images.html">SDL::Tutorial::Images</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><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Pong.html">SDL::Tutorial::Pong</a></td><td>- Get started pong</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Tetris.html">SDL::Tutorial::Tetris</a></td><td>- Let's Make Tetris</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-7-mini.png" alt="thumb" /></td><td><a href="SDL-Font.html">SDL::Font</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Game-Palette.html">SDL::Game::Palette</a></td><td>- a perl extension</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-2-mini.png" alt="thumb" /></td><td><a href="SDL-Music.html">SDL::Music</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-OpenGL.html">SDL::OpenGL</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-SFont.html">SDL::SFont</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-SMPEG.html">SDL::SMPEG</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-Sound.html">SDL::Sound</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-TTFont.html">SDL::TTFont</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-Tool-Font.html">SDL::Tool::Font</a></td><td>- a perl extension</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Tool-Graphic.html">SDL::Tool::Graphic</a></td><td></td></tr></table></div>
if($self->SUPER::type() eq 'page')
{
my $page = $self->SUPER::page();
+ my $suff = '';
if($page =~ /^SDL\b/)
{
- $page =~ s/::/-/;
- return "/$page.html";
+ $page =~ s/::([A-Z])+/-$1/g;
+ $page =~ s/(.*)::(.*)/\/$1.html#$2/;
+
+ return $page;
}
else
{