</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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>
<p>Plays the given SDL::CD starting at track $start_track, for $ntracks tracks. </p>
<p>$start_frame is the frame offset, from the beginning of the $start_track, at which to start. $nframes is the frame offset, from the
beginning of the last track ($start_track+$ntracks), at which to end playing.</p>
-<p>play_tracks() should only be called after calling <a href="#status">status</a> to get information about the CD.</p>
+<p>play_tracks() should only be called after calling <a href="http://search.cpan.org/perldoc?">http://search.cpan.org/perldoc?</a> to get information about the CD.</p>
<p><strong>Note: Data tracks are ignored.</strong></p>
<p>Returns <code>0</code>, or <code>-1</code> if there was an error. </p>
</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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="SEE_ALSO_CONTENT">
-<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="http://search.cpan.org/perldoc?SDLx::App">SDLx::App</a> <a href="http://search.cpan.org/perldoc?OpenGL">OpenGL</a> </p>
+<p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="SDLx-App.html">SDLx::App</a> <a href="http://search.cpan.org/perldoc?OpenGL">OpenGL</a> </p>
</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="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="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>
</div>
\ No newline at end of file
</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>
<dl>
<dt>SDLx::App</dt>
<dd>
- <p>Now depends on <a href="http://search.cpan.org/perldoc?SDLx::Surface">SDLx::Surface</a>. To get the SDL::Surface, use <code> -</code>surface() >. Alternatively <b>SDLx::Surface::display()</b> (<b>display</b> in <cite>SDLx::Surface</cite>).</p>
+ <p>Now depends on <a href="SDLx-Surface.html">SDLx::Surface</a>. To get the SDL::Surface, use <code> -</code>surface() >. Alternatively <a href="/SDLx-Surface.html#display">SDLx::Surface::display()</a>.</p>
</dd>
<dt>SDLx::Surface</dt>
<dd>
- <p><code> get_display </code> is now called <b>SDLx::Surface::display</b> (<b>display</b> in <cite>SDLx::Surface</cite>). </p>
+ <p><code> get_display </code> is now called <a href="/SDLx-Surface.html#display">SDLx::Surface::display</a>. </p>
</dd>
<dt>SDLx::Sprite::Animated</dt>
<dd>
</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>
</div>
\ No newline at end of file
</pre>
<p>Available type constants:</p>
<ul>
- <li><a href="#active">SDL_ACTIVEEVENT</a> - Application visibility event structure </li>
- <li><a href="#active">SDL_KEYDOWN</a> - Keyboard event structure </li>
- <li><a href="#active">SDL_KEYUP</a> - Keyboard event structure </li>
- <li><a href="#active">SDL_MOUSEMOTION</a> - Mouse motion event structure </li>
- <li><a href="#active">SDL_MOUSEBUTTONDOWN</a> - Mouse button event structure </li>
- <li><a href="#button">SDL_MOUSEBUTTONUP</a> - Mouse button event structure </li>
- <li><a href="#active">SDL_JOYAXISMOTION</a> - Joystick axis motion event structure </li>
- <li><a href="#active">SDL_JOYBALLMOTION</a> - Joystick trackball motion event structure </li>
- <li><a href="#active">SDL_JOYHATMOTION</a> - Joystick hat position change event structure </li>
- <li><a href="#active">SDL_JOYBUTTONDOWN</a> - Joystick button event structure </li>
- <li><a href="#active">SDL_JOYBUTTONUP</a> - Joystick button event structure </li>
- <li><a href="#active">SDL_VIDEORESIZE</a> - Window resize event structure </li>
- <li><a href="#active">SDL_VIDEOEXPOSE</a> - Window expose event </li>
- <li><a href="#active">SDL_QUIT</a> - Quit requested event </li>
- <li><a href="#active">SDL_USEREVENT</a> - A user-defined event type </li>
- <li><a href="#active">SDL_SYSWMEVENT</a> - Platform-dependent window manager event. </li>
+ <li><a href="#Application_visibility_events">SDL_ACTIVEEVENT</a> - Application visibility event structure </li>
+ <li><a href="#Keyboard_events">SDL_KEYDOWN</a> - Keyboard event structure </li>
+ <li><a href="#Keyboard_events">SDL_KEYUP</a> - Keyboard event structure </li>
+ <li><a href="#Mouse_motion_events">SDL_MOUSEMOTION</a> - Mouse motion event structure </li>
+ <li><a href="#Mouse_button_events">SDL_MOUSEBUTTONDOWN</a> - Mouse button event structure </li>
+ <li><a href="#Mouse_button_events">SDL_MOUSEBUTTONUP</a> - Mouse button event structure </li>
+ <li><a href="#Joystick_axis_events">SDL_JOYAXISMOTION</a> - Joystick axis motion event structure </li>
+ <li><a href="#Joystrick_trackball_events">SDL_JOYBALLMOTION</a> - Joystick trackball motion event structure </li>
+ <li><a href="#Joystick_hat_events">SDL_JOYHATMOTION</a> - Joystick hat position change event structure </li>
+ <li><a href="#Joystick_button_events">SDL_JOYBUTTONDOWN</a> - Joystick button event structure </li>
+ <li><a href="#Joystick_button_events">SDL_JOYBUTTONUP</a> - Joystick button event structure </li>
+ <li><a href="#Window_resize_events">SDL_VIDEORESIZE</a> - Window resize event structure </li>
+ <li><a href="#Window_expose_events">SDL_VIDEOEXPOSE</a> - Window expose event </li>
+ <li><a href="#Quit_event">SDL_QUIT</a> - Quit requested event </li>
+ <li><a href="#User_defined_events">SDL_USEREVENT</a> - A user-defined event type </li>
+ <li><a href="#System_window_manager_events">SDL_SYSWMEVENT</a> - Platform-dependent window manager event. </li>
</ul>
<p>Event types are grouped by masks. <code>SDL_EVENTMASK($type)</code> will return the proper mask for the given <code>type</code>.</p>
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 <code>SDL_EnableKeyRepeat</code>). </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">SDL::Events::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 SDL_EnableUNICODE.
+<p>The <code>unicode</code> field is only used when UNICODE translation is enabled with <a href="/SDL-Events.html#enable_unicode">SDL::Events::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 SDL_GetMouseState). </p>
+<p>The button state can be interpreted using the <code>SDL_BUTTON</code> macro (see <a href="/SDL-Events.html#get_mouse_state">SDL::Events::get_mouse_state</a>). </p>
</div>
<h3 id="motion_x_motion_y">motion_x, motion_y</h3>
</div>
<h2 id="Mouse_button_events">Mouse button events</h2>
<div id="Mouse_button_events_CONTENT">
-<p>When a mouse button press or release is detected the number of the button pressed (from 1 to 255,
-with 1 usually being the left button and 2 the right) is placed into <code>button_button</code>, the position of the mouse
-when this event occured is stored in the <code>button_x</code> and the <code>button_y</code> fields. Like SDL_KeyboardEvent,
+<p>When a mouse button press or release is detected, the number of the button pressed (from 1 to 255,
+with 1 usually being the left button and 2 the right) is placed into <code>button_button</code>. The position of the mouse
+when this event occured is stored in the <code>button_x</code> and the <code>button_y</code> fields. Like a keyboard event,
information on whether the event was a press or a release event is stored in both the <code>button_type</code>
and <code>button_state</code> fields, but this should be obvious.</p>
<p>Mouse wheel events are reported as buttons 4 (up) and 5 (down). Two events are generated i.e. you get
programmer, the only requirement is that type is a value from <code>SDL_USEREVENT</code> to <code>SDL_NUMEVENTS-1</code> (inclusive)</p>
<pre> my $event = SDL::Event->new();
$event->type ( SDL_USEREVENT + 3 );
- $event->event_code(10);
- $event->data1('hello event');
+ $event->user_code(10);
+ $event->user_data1('hello event');
SDL::Events::push_event($event);
</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>
my $event = SDL::Event->new(); # notices 'Event' ne 'Events'
while( 1 )
- {
- SDL::Events::pump_events();
- while( SDL::Events::poll_event($event) )
- {
- #check by event type
- on_active() if $event->type == SDL_ACTIVEEVENT;
- ...
- }
- }
+ {
+ SDL::Events::pump_events();
+ while( SDL::Events::poll_event($event) )
+ {
+ #check by event type
+ on_active() if $event->type == SDL_ACTIVEEVENT;
+ ...
+ }
+ }
</pre>
<pre> pump_events();
</pre>
-<p>pump_events gathers all the pending input information from devices and places it on the event queue. Without calls to pump_events no events would ever be placed on the queue.
-Often the need for calls to pump_events is hidden from the user since <a href="http://search.cpan.org/perldoc?poll_event">poll_event</a> and <a href="http://search.cpan.org/perldoc?wait_event">wait_event</a> implicitly call pump_events.
+<p>pump_events gathers all the pending input information from devices and places it on the event queue. Without calls to pump_events no events would
+ever be placed on the queue.
+Often the need for calls to pump_events is hidden from the user since <a href="http://search.cpan.org/perldoc?">http://search.cpan.org/perldoc?</a> and <a href="http://search.cpan.org/perldoc?">http://search.cpan.org/perldoc?</a> implicitly call pump_events.
However, if you are not polling or waiting for events (e.g. you are filtering them), then you must call pump_events to force an event queue update.</p>
</pre>
<p>If action is SDL_ADDEVENT, up to numevents events will be added to the back of the event queue.</p>
-<p>If action is SDL_PEEKEVENT, up to numevents events at the front of the event queue, matching mask, will be returned and will not be removed from the queue.</p>
-<p>If action is SDL_GETEVENT, up to numevents events at the front of the event queue, matching mask, will be returned and will be removed from the queue.</p>
+<p>If action is SDL_PEEKEVENT, up to numevents events at the front of the event queue, matching mask, will be returned and will not be removed from
+the queue.</p>
+<p>If action is SDL_GETEVENT, up to numevents events at the front of the event queue, matching mask, will be returned and will be removed from the
+queue.</p>
<p>The mask parameter is a bitwise OR of SDL::Events::SDL_EVENTMASK(event_type), for all event types you are interested in</p>
<p>This function is thread-safe.</p>
<p>You may have to call pump_events before calling this function. Otherwise, the events may not be ready to be filtered when you call peep_events.</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.html#set_video_mode">SDL::Video::set_video_mode</a>. </p>
</div>
<h3 id="RETURN-2">RETURN</h3>
<h2 id="push_event_event">push_event($event)</h2>
<div id="push_event_event_CONTENT">
<p>Pushes an event onto the event queue </p>
-<p>The event queue can actually be used as a two way communication channel. Not only can events be read from the queue, but the user can also push their own events onto it. event is a pointer to the event structure you wish to push onto the queue.
+<p>The event queue can actually be used as a two way communication channel. Not only can events be read from the queue, but the user can also push
+their own events onto it. event is a pointer to the event structure you wish to push onto the queue.
The event is copied into the queue, and the caller may dispose of the memory pointed to after push_event returns.</p>
<p>Note: Pushing device input events onto the queue doesn't modify the state of the device within SDL. </p>
<p>This function is thread safe, and can be called from other threads safely.</p>
<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.html#set_video_mode">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>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>This callback may run in a different thread. </p>
</div>
</pre>
<p>Use <a href="/SDL-Events.html#pump_events">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 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>
</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.html#key_sym">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>
<pre> my $success = SDL::Events::enable_key_repeat( $delay, $interval );
</pre>
-<p>Enables or disables the keyboard repeat rate. $delay specifies how long the key must be pressed before it begins repeating, it then repleats at the speed specified by $interval. Both $delay and $interval are expressed in milliseconds.</p>
+<p>Enables or disables the keyboard repeat rate. $delay specifies how long the key must be pressed before it begins repeating, it then repleats at the
+speed specified by $interval. Both $delay and $interval are expressed in milliseconds.</p>
<p>Setting $delay to 0 disables key repeating completely. Good default values are SDL_DEFAULT_REPEAT_DELAY and SDL_DEFAULT_REPEAT_INTERVAL.</p>
<p>Return 0 on success and -1 on fail.</p>
<h2 id="get_mouse_state">get_mouse_state </h2>
<div id="get_mouse_state_CONTENT">
<p>Retrives the current state of the mouse</p>
-<pre> my ($mask,$x,$y) = @{ SDL::Events::get_mouse_state( ) };
+<pre> my ($mask,$x,$y) = @{ SDL::Events::get_mouse_state( ) };
- print 'Button Left pressed' if ($mask & SDL_BUTTON_LMASK);
+ print 'Button Left pressed' if ($mask & SDL_BUTTON_LMASK);
- print 'Button Right pressed' if ($mask & SDL_BUTTON_RMASK);
+ print 'Button Right pressed' if ($mask & SDL_BUTTON_RMASK);
- print 'Button Middle pressed' if ($mask & SDL_BUTTON_MMASK);
+ print 'Button Middle pressed' if ($mask & SDL_BUTTON_MMASK);
- print $x.','.$y;
+ print $x.','.$y;
</pre>
<p>The current button state is returned as a button $bitmask, which can be tested using the the above constants </p>
<h2 id="get_relative_mouse_state">get_relative_mouse_state </h2>
<div id="get_relative_mouse_state_CONTENT">
<p>Retrives the current relative state of the mouse</p>
-<pre> my ($mask,$x,$y) = @{ SDL::Events::get_mouse_state( ) };
+<pre> my ($mask,$x,$y) = @{ SDL::Events::get_mouse_state( ) };
- print 'Button Left pressed' if ($mask & SDL_BUTTON_LMASK);
+ print 'Button Left pressed' if ($mask & SDL_BUTTON_LMASK);
- print 'Button Right pressed' if ($mask & SDL_BUTTON_RMASK);
+ print 'Button Right pressed' if ($mask & SDL_BUTTON_RMASK);
- print 'Button Middle pressed' if ($mask & SDL_BUTTON_MMASK);
+ print 'Button Middle pressed' if ($mask & SDL_BUTTON_MMASK);
- print $x.','.$y; # this is relative to the last postion of the mouse
+ print $x.','.$y; # this is relative to the last postion of the mouse
</pre>
<p>The current button state is returned as a button $bitmask, which can be tested using the the above constants </p>
<pre> my $status = SDL::Events::joystick_event_state( $state );
</pre>
-<p>This function is used to enable or disable joystick event processing. With joystick event processing disabled you will have to update joystick states with SDL_JoystickUpdate and read the joystick information manually. $state can be:</p>
+<p>This function is used to enable or disable joystick event processing. With joystick event processing disabled you will have to update joystick
+states with <a href="/SDL-Joystick.html#update">SDL::Joystick::update</a> and read the joystick information manually. $state can be:</p>
<dl>
<dt>SDL_QUERY</dt>
<dt>SDL_ENABLE </dt>
</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
<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.html#set_video_mode">SDL::Video::set_video_mode</a> or can be an <a href="SDLx-App.html">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>
</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>
</div>
\ No newline at end of file
</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>
<dt>XCF</dt>
<dd>
<p>GIMP native (.xcf) (XCF = eXperimental Computing Facility?)
-This format is always changing, and since there's no library supplied by the GIMP project to load XCF, the loader may frequently fail to load much of any image from an XCF file. It's better to load this in GIMP and convert to a better supported image format. </p>
+This format is always changing, and since there's no library supplied by the GIMP project to load XCF, the loader may frequently fail to load much
+of any image from an XCF file. It's better to load this in GIMP and convert to a better supported image format. </p>
</dd>
<dt>PCX</dt>
<dd>
</dd>
<dt>LBM</dt>
<dd>
- <p>Interleaved Bitmap (.lbm or .iff) FORM : ILBM or PBM(packed bitmap)
-HAM6, HAM8, and 24bit types are not supported. </p>
+ <p>Interleaved Bitmap (.lbm or .iff) FORM : ILBM or PBM(packed bitmap), HAM6, HAM8, and 24bit types are not supported. </p>
</dd>
<dt>PNG</dt>
<dd>
</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.
-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>
+<p>Load file for use as an image in a new <a href="SDL-Surface.html">SDL::Surface</a>. This actually calls <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. </p>
+<p><strong>Note</strong>: 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>
+<p><strong>Note</strong>: 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:</p>
+<p><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.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.html#get_error">SDL::get_error</a> to get cause of error.</p>
</div>
<h2 id="load_typed_rw">load_typed_rw</h2>
</dd>
<dt>freesrc</dt>
<dd>
- <p>A non-zero value mean is will automatically close/free the src for you. Since SDL Perl cannot handle the memory inside this function you would most likely want 1 here.</p>
+ <p>A non-zero value mean is will automatically close/free the src for you. Since SDL Perl cannot handle the memory inside this function you would most
+likely want 1 here.</p>
</dd>
<dt>type</dt>
<dd>
</p>
</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 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>
+<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.</p>
+<p><strong>Note</strong>: 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>
+<p><strong>Note</strong>: 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>
</div>
<h3 id="Transparency">Transparency </h3>
<dt>IMG_INIT_PNG </dt>
<dt>IMG_INIT_TIF</dt>
</dl>
-<p>Initialize by loading support as indicated by the flags, or at least return success if support is already loaded. You may call this multiple times, which will actually require you to call IMG_Quit just once to clean up. You may call this function with a 0 to retrieve whether support was built-in or not loaded yet.
-Note: to load JPG, PNG, and/or TIF images you can call IMG_Init with the right IMG_INIT_* flags OR'd together before you program gets busy, to prevent a later hiccup while it loads the library, and to check that you do have the support that you need before you try and use it.
-Note: No initialization is needed nor performed when using the SDL::Image::is_JPG, SDL::Image::is_PNG, and SDL::Image::is_TIF functions.
-Note: this function does not always set the error string, so do not depend on SDL::Image::get_error being meaningful all the time. </p>
+<p>Initialize by loading support as indicated by the flags, or at least return success if support is already loaded. You may call this multiple times,
+which will actually require you to call IMG_Quit just once to clean up. You may call this function with a 0 to retrieve whether support was built-in
+or not loaded yet.</p>
+<p><strong>Note</strong>: to load JPG, PNG, and/or TIF images you can call IMG_Init with the right IMG_INIT_* flags OR'd together before you program gets busy, to
+prevent a later hiccup while it loads the library, and to check that you do have the support that you need before you try and use it.</p>
+<p><strong>Note</strong>: No initialization is needed nor performed when using the SDL::Image::is_JPG, SDL::Image::is_PNG, and SDL::Image::is_TIF functions.</p>
+<p><strong>Note</strong>: this function does not always set the error string, so do not depend on SDL::Image::get_error being meaningful all the time. </p>
</div>
<h3 id="Return-7">Return</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.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>
<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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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.
+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>
<p><strong>Note</strong>: Do not use this on a threaded perl. This will crash.</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>
-<p>Returns: Zero on errors, such as an invalid channel, or if <code>SDL::Mixer::Effects::register</code> failed. </p>
+<p>Returns: Zero on errors, such as an invalid channel, or if <a href="/SDL-Mixer-Effects.html#register">SDL::Mixer::Effects::register</a> failed. </p>
</div>
<h2 id="set_reverse_stereo">set_reverse_stereo</h2>
</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
<pre> my $music = SDL::Mixer::Music::load_MUS( $file );
</pre>
-<p><code>load_MUS</code> loads a music file into a <code>SDL::Mixer::MixMusic</code> structure. This can be passed to <a href="/SDL-Mixer-Music.html#play_music">SDL::Mixer::Music::play_music</a>.</p>
+<p><code>load_MUS</code> loads a music file into a <code>SDL::Mixer::MixMusic</code> structure. This can be passed to <a href="/SDL-Mixer-Music.html#play_music">play_music</a>.</p>
</div>
<h2 id="hook_music">hook_music</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.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.
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>Example:</p>
</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>
</div>
\ No newline at end of file
<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');
</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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>
</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.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>
</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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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>
</pre>
<p>Sets the direction of the text to either left-to-right or right-to-left.</p>
-<p>See <a href="#CONSTANTS">CONSTANTS</a>.</p>
+<p>See <a href="http://search.cpan.org/perldoc?">http://search.cpan.org/perldoc?</a>.</p>
</div>
<h2 id="set_dpi">set_dpi</h2>
</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>
<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>
</div>
\ No newline at end of file
</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="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>
</div>
\ No newline at end of file
</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>
</div>
\ No newline at end of file
</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>
</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.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>
</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
-use the functionality again</p>
+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 use the functionality again</p>
</div>
<h2 id="Management_functions">Management functions</h2>
</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>
<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>
</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="http://search.cpan.org/perldoc?SDLx::App">SDLx::App</a> object <code>$app</code>, a <a href="SDL-Rect.html">SDL::Rect</a> <code>$rect</code>, and
+every frame. Given a <a href="SDLx-App.html">SDLx::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>,
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,
<div id="AUTHOR_CONTENT">
<p>chromatic, <chromatic@wgz.org></p>
<p>Written for and maintained by the Perl SDL project, <a href="http://sdl.perl.org/">http://sdl.perl.org/</a>.
-See <b>AUTHORS</b> in <cite>SDL</cite>.</p>
+See <a href="/SDL.html#AUTHORS">/SDL.html#AUTHORS</a>.</p>
</div>
<h1 id="BUGS">BUGS</h1><p><a href="#TOP" class="toplink">Top</a></p>
<h1 id="COPYRIGHT_amp_LICENSE">COPYRIGHT & LICENSE</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="COPYRIGHT_amp_LICENSE_CONTENT">
<p>Copyright 2009 Nelson Ferraz, all rights reserved.</p>
-<p>Updated and maintained by the SDL Perl project. See <b>AUTHORS</b> in <cite>SDL</cite>.</p>
+<p>Updated and maintained by the SDL Perl project. See <a href="/SDL.html#AUTHORS">/SDL.html#AUTHORS</a>.</p>
<p>This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.</p>
<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="http://search.cpan.org/perldoc?SDLx::App">SDLx::App</a> provides.</p>
+<a href="SDLx-App.html">SDLx::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
<h1 id="AUTHORS">AUTHORS</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="AUTHORS_CONTENT">
<p>chromatic, <chromatic@wgz.org>. </p>
-<p>Written for and maintained by the Perl SDL project, <a href="http://sdl.perl.org/">http://sdl.perl.org/</a>. See <b>AUTHORS</b> in <cite>SDL</cite> for details.</p>
+<p>Written for and maintained by the Perl SDL project, <a href="http://sdl.perl.org/">http://sdl.perl.org/</a>. See <a href="/SDL.html#AUTHORS">/SDL.html#AUTHORS</a> for details.</p>
</div>
<h1 id="COPYRIGHT">COPYRIGHT</h1><p><a href="#TOP" class="toplink">Top</a></p>
</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>
</div>
\ No newline at end of file
<p>If you call this on the video surface (ie: the value of <a href="#get_video_surface">SDL::Video::get_video_surface</a>) you may have to update the video
surface to see the result. This can happen if you are using a shadowed surface that is not double buffered in Windows XP using build 1.2.9. </p>
<p><code>SDL::Video::fill_rect</code> returns <code>0</code> on success or <code>-1</code> on error.</p>
-<p>for an example see <a href="#SYNOPSIS">SYNOPSIS</a>.</p>
+<p>for an example see <a href="http://search.cpan.org/perldoc?">http://search.cpan.org/perldoc?</a>.</p>
</div>
<h1 id="Surface_Locking_and_Unlocking">Surface Locking and Unlocking</h1><p><a href="#TOP" class="toplink">Top</a></p>
</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>
<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>
</div>
\ No newline at end of file
<p>See the <a href="http://github.com/kthakore/SDL_perl/graphs/impact">impact graph</a> on our github repository.</p>
<p>Andy Bakun <sdlperl@thwartedefforts.org></p>
<p>Benedikt Meurer <bmeurer@fwdn.de></p>
-<p>Blaise Roth (Blaizer) <blaiseroth@gmail.com></p>
+<p>Blaise Roth (Blaizer) <blaizer@cpan.org></p>
<p>Breno G. de Oliveira (garu)</p>
<p>Brian Cassidy (bricas)</p>
<p>chromatic <chromatic@wgz.org></p>
<ul><li><a href="#NAME">NAME</a></li>
<li><a href="#CATEGORY">CATEGORY</a></li>
<li><a href="#SYNOPSIS">SYNOPSIS</a></li>
+<li><a href="#DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#METHODS">METHODS</a>
<ul><li><a href="#new">new</a></li>
</ul>
}
</pre>
-<p>An alternative to the manual Event processing is through the <a href="http://search.cpan.org/perldoc?SDLx::Controller">SDLx::Controller</a> module. <a href="http://search.cpan.org/perldoc?SDLx::App">SDLx::App</a> is a Controller so see the CALLBACKS section below.
-=head1 DESCRIPTION</p>
-<p><a href="http://search.cpan.org/perldoc?SDLx::App">SDLx::App</a> controls the root window of the of your SDL based application.
+<p>An alternative to the manual Event processing is through the <a href="SDLx-Controller.html">SDLx::Controller</a> module. <a href="SDLx-App.html">SDLx::App</a> is a Controller so see the CALLBACKS section below.</p>
+
+</div>
+<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="DESCRIPTION_CONTENT">
+<p><a href="SDLx-App.html">SDLx::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
manager oriented functions.</p>
Any flags you want to pass to <a href="SDL-Video.html">SDL::Video</a> upon initialization. Defaults to SDL_ANYFORMAT. Flags should be <i>or'ed</i> together if you're passing more than one (flags => FOO|BAR). Shortcut: 'f'.</dt>
<dt>* resizeable
Set this to a true value to make the window resizeable by the user. Default is off.</dt>
+ <dt>* exit_on_quit
+Set this to a true value to make the app exit if a SDL_QUIT event is triggered. Shortcut: 'eoq'.</dt>
</dl>
</div>
$app->run();
</pre>
-<p>see <a href="http://search.cpan.org/perldoc?SDLx::Controller">SDLx::Controller</a> for more details.</p>
+<p>see <a href="SDLx-Controller.html">SDLx::Controller</a> for more details.</p>
</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>
<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>
</div>
\ No newline at end of file
--- /dev/null
+<div class="pod">
+<!-- INDEX START -->
+<h3 id="TOP">Index</h3>
+
+<ul><li><a href="#NAME">NAME</a></li>
+<li><a href="#CATEGORY">CATEGORY</a></li>
+<li><a href="#SYNOPSIS">SYNOPSIS</a></li>
+<li><a href="#DESCRIPTION">DESCRIPTION</a></li>
+<li><a href="#METHODS">METHODS</a>
+<ul><li><a href="#new">new()</a></li>
+<li><a href="#new_x_y_v_x_v_y_rotation_ang_v">new( $x, $y, $v_x, $v_y, $rotation, $ang_v )</a></li>
+</ul>
+</li>
+<li><a href="#ACCESSORS">ACCESSORS</a>
+<ul><li><a href="#x">x</a></li>
+<li><a href="#y">y</a></li>
+<li><a href="#v_x">v_x</a></li>
+<li><a href="#v_y">v_y</a></li>
+<li><a href="#rotation">rotation</a></li>
+<li><a href="#ang_v">ang_v</a></li>
+<li><a href="#AUTHORS">AUTHORS</a>
+</li>
+</ul>
+</li>
+</ul><hr />
+<!-- INDEX END -->
+
+<h1 id="NAME">NAME</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="NAME_CONTENT">
+<p>SDLx::Controller::State - the state of a SDLx::Controller::Interface</p>
+
+</div>
+<h1 id="CATEGORY">CATEGORY</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="CATEGORY_CONTENT">
+<p>Extension, Controller</p>
+
+</div>
+<h1 id="SYNOPSIS">SYNOPSIS</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="SYNOPSIS_CONTENT">
+<pre> # you'll most likely get a State object from a SDLx::Controller::Interface
+ # object. Just in case, here's how you would construct one by hand:
+ my $state1 = SDLx::Controller::State->new;
+ my $state2 = SDLx::Controller::State->new( $x, $y, $v_x, $v_y, $rotation, $ang_v );
+
+ # attributes are just simple accessors:
+ $state->x(10);
+ $state->x; # 10
+
+ # same goes for the rest:
+ $state->y;
+ $state->ang_v;
+
+ # etc.
+
+</pre>
+
+</div>
+<h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="DESCRIPTION_CONTENT">
+<p>A state object is a simple container for any given state inside a running
+<a href="SDLx-Controller-Interface.html">SDLx::Controller::Interface</a> instance.</p>
+
+</div>
+<h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="METHODS_CONTENT">
+
+</div>
+<h2 id="new">new()</h2>
+<div id="new_CONTENT">
+
+</div>
+<h2 id="new_x_y_v_x_v_y_rotation_ang_v">new( $x, $y, $v_x, $v_y, $rotation, $ang_v )</h2>
+<div id="new_x_y_v_x_v_y_rotation_ang_v_CONTE">
+<p>Creates a new state container object. Can optionally set the initial value
+of all its attributes (see below).</p>
+
+</div>
+<h1 id="ACCESSORS">ACCESSORS</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="ACCESSORS_CONTENT">
+
+</div>
+<h2 id="x">x</h2>
+<div id="x_CONTENT">
+<p>Accessor to get/set the x value, usually used to position the item or check for collisions.</p>
+
+</div>
+<h2 id="y">y</h2>
+<div id="y_CONTENT">
+<p>Accessor to get/set the y value, usually used to position the item or check for collisions.</p>
+
+</div>
+<h2 id="v_x">v_x</h2>
+<div id="v_x_CONTENT">
+<p>Accessor to get/set the x velocity of the instance, for moving objects dynamically.</p>
+
+</div>
+<h2 id="v_y">v_y</h2>
+<div id="v_y_CONTENT">
+<p>Accessor to get/set the y velocity of the instance, for moving objects dynamically.</p>
+
+</div>
+<h2 id="rotation">rotation</h2>
+<div id="rotation_CONTENT">
+<p>Accessor to get/set the rotation of the object, in degrees (0..360).</p>
+
+</div>
+<h2 id="ang_v">ang_v</h2>
+<div id="ang_v_CONTENT">
+<p>Accessor to get/set the angular velocity, for rotating objects dynamically.</p>
+
+</div>
+<h2 id="AUTHORS">AUTHORS</h2>
+<div id="AUTHORS_CONTENT">
+<p>See <a href="/SDL.html#AUTHORS">/SDL.html#AUTHORS</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">
-<pre> use SDLx::Controller;
+<pre> use SDLx::Controller;
- # create our controller object
- my $app = SDLx::Controller->new;
-
- # register some callbacks
- $app->add_event_handler( \&on_event );
- $app->add_move_handler( \&on_move );
- $app->add_show_handler( \&on_show );
-
- # run our game loop
- $app->run;
+ # create our controller object
+ my $app = SDLx::Controller->new;
+ # we could also do:
+ my $app = SDLx::App->new;
+ # because App is also a controller
+ # register some callbacks
+ $app->add_event_handler( \&on_event );
+ $app->add_move_handler( \&on_move );
+ $app->add_show_handler( \&on_show );
+ # run our game loop
+ $app->run;
</pre>
</div>
<h2 id="DESCRIPTION">DESCRIPTION</h2>
<div id="DESCRIPTION_CONTENT">
-<p>The core of a SDL application/game is the main loop, where you handle events
+<p>The core of an SDL application/game is the main loop, where you handle events
and display your elements on the screen until something signals the end of
the program. This usually goes in the form of:</p>
<pre> while (1) {
If you lower the <code>dt</code>, everything will move faster than it did with it set higher, and vice-versa.
This is useful to add slo-mo and fast-forward features to the game, all you would have to do is change the <code>dt</code>.</p>
<p><code>min_t</code> specifies the minimum time, in seconds, that has to accumulate before any move or show handlers are called, and defaults to 1 / 60.
-Having the <code>min_t</code> to 1 / 60 ensures that the controller can update the screen at a maximum of 60 times per second.
+Having the <code>min_t</code> at 1 / 60 ensures that the controller can update the screen at a maximum of 60 times per second.
A "V-Sync" such as this is necessary to prevent video "tear", which occurs when the app is updating faster than the monitor can display.
-Setting it to 0, as in the example, will let the app run as fast as it possibly can.</p>
-<p><code>event</code> is a SDL::Event object that events going to the event callbacks are polled in to. Defaults to <code>SDL::Event->new()</code>.</p>
+Setting it to 0, as seen above, will let the app run as fast as it possibly can.</p>
+<p><code>event</code> is a SDL::Event object that events going to the event callbacks are polled in to. It defaults to <code>SDL::Event->new()</code>.</p>
<p>All parameters are optional.</p>
<p>Returns the new object.</p>
<p>Takes 1 argument which is a callback. The application waits for the next event with <code>wait_event</code>.
When one is recieved, it is passed to the callback as the first argument, along with the <code>SDLx::Controller</code> object as the second argument.
If the callback then returns a true value, <code>pause</code> will return.
-If the callback returns a false value, <code>pause</code> will indefinitely wait for more events, repeating the process, until the callback returns true.</p>
+If the callback returns a false value, <code>pause</code> will repeat the process.</p>
<p>This can be used to easily implement a pause when the app loses focus:</p>
-<pre> sub focus {
- my ($e, $controller) = @_;
- if($e->type == SDL_ACTIVEEVENT) {
+<pre> sub window {
+ my ($e, $app) = @_;
+ if($e->type == SDL_QUIT) {
+ $app->stop;
+ # quit handling is here so that the app
+ # can be stopped while paused
+ }
+ elsif($e->type == SDL_ACTIVEEVENT) {
if($e->active_state & SDL_APPINPUTFOCUS) {
if($e->active_gain) {
return 1;
}
else {
- $controller->pause(\&focus);
+ $app->pause(\&window);
# recursive, but only once since the window
# can't lose focus again without gaining is first
}
<pre> sub stop {
my ($event, $app) = @_;
if($event->type == SDL_QUIT) {
- $controller->stop;
+ $app->stop;
}
}
- $controller->add_event_handler(\&stop);
+ $app->add_event_handler(\&stop);
</pre>
The first argument passed to the callbacks is the portion of the step, which will be 1 for a full step, and less than 1 for a partial step.
Movement values should be multiplied by this value.
The full steps correspond to the amount of <code>dt</code> passed between calls, and the partial step corresponds to the call with the remaining time less than <code>dt</code>.
-The argument can be 0 if no time has passed since the last cycle. Set a <code>min_t</code> if you need to protect against this.</p>
+The argument can be 0 if no time has passed since the last cycle. If you need to protect against this, set a <code>min_t</code>, or put a <code>return unless $_[0]</code> at the start of every move handler.</p>
<p>The second argument passed to the callbacks is the <code>SDLx::Controller</code> object.
The third is the total amount of time passed since the call of <code>run</code>.</p>
<p>You should use these handlers to update your in-game objects, check collisions, etc.
<p>Register a callback to render objects. You can add as many subs as you need.
Returns the order queue number of the added callback.
All registered callbacks will be triggered in order, once per run of the <code>run</code> loop.</p>
-<p>The first argument passed is the number of ticks since the previous call.
+<p>The first argument passed is the time, in seconds, since the previous call.
The second is the <code>SDLx::Controller</code> object.</p>
<pre> sub show_ball {
my ($delta, $app) = @_;
</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>
<h2 id="ACKNOWLEGDEMENTS">ACKNOWLEGDEMENTS</h2>
</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="COPYRIGHT">COPYRIGHT</h1><p><a href="#TOP" class="toplink">Top</a></p>
</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="COPYRIGHT">COPYRIGHT</h1><p><a href="#TOP" class="toplink">Top</a></p>
</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="ACKNOWLEDGEMENTS">ACKNOWLEDGEMENTS</h1><p><a href="#TOP" class="toplink">Top</a></p>
</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="COPYRIGHT">COPYRIGHT</h1><p><a href="#TOP" class="toplink">Top</a></p>
</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="COPYRIGHT_amp_LICENSE">COPYRIGHT & LICENSE</h1><p><a href="#TOP" class="toplink">Top</a></p>
</div>
<h1 id="ATTRIBUTES_AND_METHODS">ATTRIBUTES AND METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p>
<div id="ATTRIBUTES_AND_METHODS_CONTENT">
-<p>SDLx::Sprite::Animated is a <strong>subclass</strong> of <a href="http://search.cpan.org/perldoc?SDLx::Sprite">SDLx::Sprite</a>, inheriting
+<p>SDLx::Sprite::Animated is a <strong>subclass</strong> of <a href="SDLx-Sprite.html">SDLx::Sprite</a>, inheriting
all its attributes and methods. Please refer to that module's documentation
for information on those.</p>
<p>The one difference in behavior is that, while a standard SDLx::Sprite uses
</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>
<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>
<ul><li><a href="#surface">surface</a></li>
<li><a href="#w_h_format_pitch_flags">w, h, format, pitch, flags</a></li>
<li><a href="#clip_rect">clip_rect</a></li>
-</ul>
-</li>
-<li><a href="#EXTENSIONS">EXTENSIONS</a>
-<ul><li><a href="#load">load</a></li>
+<li><a href="#load">load</a></li>
<li><a href="#blit">blit </a></li>
<li><a href="#blit_by">blit_by</a></li>
<li><a href="#flip">flip</a></li>
</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="/SDLx-App.html#new">SDLx::App::new</a> or <a href="/SDL-Video.html#get_video_mode">SDL::Video::get_video_mode</a> called before then:</p>
<pre> my $appx = SDLx::Surface::display();
</pre>
</pre>
<p>You can also use the keys <code>w</code> and <code>h</code> in place of <code>width</code> and <code>height</code>, as with <code>new</code>.</p>
-<p>Get or create the main display surface and attach to a SDLx::Surface.</p>
+<p>Get or create the main display surface and attach to a <code>SDLx::Surface</code>.</p>
</div>
<h2 id="duplicate">duplicate</h2>
</div>
<h2 id="clip_rect">clip_rect</h2>
<div id="clip_rect_CONTENT">
-<p>Sets the passed <code>SDL::Rect</code> as the new clip_rect for the surface. Returns the SDL::Surface's clip_rect. See <code>SDL::Video::get_clip_rect</code> and <code>SDL::Video::set_clip_rect</code>.</p>
-
-</div>
-<h1 id="EXTENSIONS">EXTENSIONS</h1><p><a href="#TOP" class="toplink">Top</a></p>
-<div id="EXTENSIONS_CONTENT">
+<p>Sets the passed <code>SDL::Rect</code> as the new clip_rect for the surface. Returns the SDL::Surface's clip_rect. See
+<a href="/SDL-Video.html#get_clip_rect">SDL::Video::get_clip_rect</a> and <a href="/SDL-Video.html#set_clip_rect">SDL::Video::set_clip_rect</a>.
+=head1 EXTENSIONS</p>
</div>
<h2 id="load">load</h2>
<pre> $sdlx_surface->blit( $dest, $src_rect, $dest_rect );
</pre>
-<p>Blits SDLx::Surface onto $dest surface.
-$src_rect or $dest_rect are optional. If $src_rect is ommited, it will be the size of the entire surface. If $dest_rect is ommited, it will be blitted at <code>(0, 0)</code>. $src_rect or $dest_rect can be array refs or SDL::Rect. $dest can be SDLx::Surface or SDL::Surface.</p>
+<p>Blits <code>SDLx::Surface</code> onto $dest surface.
+$src_rect or $dest_rect are optional. If $src_rect is ommited, it will be the size of the entire surface. If $dest_rect is ommited,
+it will be blitted at <code>(0, 0)</code>. $src_rect or $dest_rect can be array refs or <code>SDL::Rect</code>. $dest can be <code>SDLx::Surface</code> or <code>SDL::Surface</code>.</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.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>Returns $self</p>
</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>
</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-6-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-3-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-2-mini.png" alt="thumb" /></td><td><a href="SDL-Time.html">SDL::Time</a></td><td>- An SDL Perl extension for managing timers</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Audio</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Audio.html">SDL::Audio</a></td><td>- SDL Bindings for Audio</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-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-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-5-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-1-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-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-5-mini.png" alt="thumb" /></td><td><a href="SDL-Joystick.html">SDL::Joystick</a></td><td>- SDL Bindings for the Joystick device</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Mouse</strong></td></tr><tr><td><img src="assets/bubble-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-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-2-mini.png" alt="thumb" /></td><td><a href="SDL-Color.html">SDL::Color</a></td><td>- Format independent color description</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Overlay.html">SDL::Overlay</a></td><td>- YUV Video overlay</td></tr><tr><td><img src="assets/bubble-3-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-4-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-3-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-3-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-7-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-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-4-mini.png" alt="thumb" /></td><td><a href="SDLx-App.html">SDLx::App</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-1-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-1-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-6-mini.png" alt="thumb" /></td><td><a href="SDLx-Rect.html">SDLx::Rect</a></td><td>- SDL extension for storing and manipulating rectangular coordinates</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDLx-SFont.html">SDLx::SFont</a></td><td>- Extension making fonts out of images and printing them</td></tr><tr><td><img src="assets/bubble-1-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-3-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-2-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-1-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-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-1-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-FPSManager.html">SDL::GFX::FPSManager</a></td><td>- data structure used by SDL::GFX::Framerate</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Image</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Image.html">SDL::Image</a></td><td>- Bindings for the SDL_Image library</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Mixer</strong></td></tr><tr><td><img src="assets/bubble-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-4-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>- 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-1-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Music.html">SDL::Mixer::Music</a></td><td>- functions for music</td></tr><tr><td><img src="assets/bubble-6-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-3-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixMusic.html">SDL::Mixer::MixMusic</a></td><td>- SDL Bindings for structure SDL_MixMusic</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Pango</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Pango.html">SDL::Pango</a></td><td>- Text rendering engine</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-2-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-2-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-6-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-6-mini.png" alt="thumb" /></td><td><a href="SDL-RWOps.html">SDL::RWOps</a></td><td>- SDL Bindings to SDL_RWOPs</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">GFX</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-BlitFunc.html">SDL::GFX::BlitFunc</a></td><td>- blitting functions</td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-ImageFilter.html">SDL::GFX::ImageFilter</a></td><td>- image filtering functions</td></tr><tr><td><img src="assets/bubble-2-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-5-mini.png" alt="thumb" /></td><td><a href="SDL-TTF.html">SDL::TTF</a></td><td>- True Type Font functions (libfreetype)</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-TTF-Font.html">SDL::TTF::Font</a></td><td>- Font object type for SDL_ttf</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Tutorials</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial.html">SDL::Tutorial</a></td><td>- introduction to Perl SDL</td></tr><tr><td><img src="assets/bubble-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-5-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><tr><td><img src="assets/SDL_thumb.png" alt="thumb" /></td><td><a href="SDL.html">SDL</a></td><td>- Simple DirectMedia Layer for Perl</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Credits.html">SDL::Credits</a></td><td>- Authors and contributors of the SDL Perl project</td></tr><tr><td><img src="assets/bubble-6-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-7-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-4-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-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-6-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-7-mini.png" alt="thumb" /></td><td><a href="SDL-CDTrack.html">SDL::CDTrack</a></td><td>- SDL Bindings for structure SDL_CDTrack</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Events</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Events.html">SDL::Events</a></td><td>- Bindings to the Events Category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-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-6-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-1-mini.png" alt="thumb" /></td><td><a href="SDL-Cursor.html">SDL::Cursor</a></td><td>- Mouse cursor structure</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Version.html">SDL::Version</a></td><td>- SDL Bindings for structure SDL_Version</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Video</strong></td></tr><tr><td><img src="assets/Video_thumb.png" alt="thumb" /></td><td><a href="SDL-Video.html">SDL::Video</a></td><td>- Bindings to the video category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-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-1-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-4-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-5-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-5-mini.png" alt="thumb" /></td><td><a href="SDL-VideoInfo.html">SDL::VideoInfo</a></td><td>- Video Target Information </td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Cookbook</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Cookbook.html">SDL::Cookbook</a></td><td></td></tr><tr><td><img src="assets/bubble-2-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-4-mini.png" alt="thumb" /></td><td><a href="SDLx-App.html">SDLx::App</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDLx-Layer.html">SDLx::Layer</a></td><td>- Storage object for surface and position information</td></tr><tr><td><img src="assets/bubble-2-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-6-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-2-mini.png" alt="thumb" /></td><td><a href="SDLx-SFont.html">SDLx::SFont</a></td><td>- Extension making fonts out of images and printing them</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDLx-Sound.html">SDLx::Sound</a></td><td></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDLx-Sprite.html">SDLx::Sprite</a></td><td>- interact with images quick and easily in SDL</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDLx-Sprite-Animated.html">SDLx::Sprite::Animated</a></td><td>- create animated SDL sprites easily!</td></tr><tr><td><img src="assets/bubble-6-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-4-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-7-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><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDLx-Controller-State.html">SDLx::Controller::State</a></td><td>- the state of a SDLx::Controller::Interface</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-4-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-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-5-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-5-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-4-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Channels.html">SDL::Mixer::Channels</a></td><td>- SDL::Mixer channel functions and bindings</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Effects.html">SDL::Mixer::Effects</a></td><td>- sound effect functions</td></tr><tr><td><img src="assets/bubble-3-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-5-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-4-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixChunk.html">SDL::Mixer::MixChunk</a></td><td>- SDL Bindings for structure SDL_MixChunk</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixMusic.html">SDL::Mixer::MixMusic</a></td><td>- SDL Bindings for structure SDL_MixMusic</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Pango</strong></td></tr><tr><td><img src="assets/bubble-7-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-4-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-6-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-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-6-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-1-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-ImageFilter.html">SDL::GFX::ImageFilter</a></td><td>- image filtering functions</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Rotozoom.html">SDL::GFX::Rotozoom</a></td><td>- rotation and zooming functions for surfaces</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">TTF</strong></td></tr><tr><td><img src="assets/bubble-4-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-5-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-3-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-LunarLander.html">SDL::Tutorial::LunarLander</a></td><td>- a small tutorial on Perl SDL</td></tr></table></div>
use strict;
use warnings;
use Carp;
+use Data::Dumper;
use Pod::Xhtml;
use File::Copy;
use File::Spec::Functions qw(rel2abs splitpath splitdir catpath catdir catfile canonpath);
-my $input_path = 'D:/dev/SDL_perl/lib/pods';
+my $input_path = 'D:/dev/SDL/lib/pods';
$input_path = $ARGV[0] if $ARGV[0];
my ($volume, $dirs) = splitpath(rel2abs(__FILE__));
read_file($_) if(-d $_);
if($_ =~ /\.pod$/i)
{
+ print "Processing $_\n";
my $key = '';
my $file_name = $_;
$file_name =~ s/^$input_path\/*//;
return $self;
}
+my $warn = 0;
sub node
{
my $self = shift;
+
if($self->SUPER::type() eq 'page')
{
my $page = $self->SUPER::page();
my $suff = '';
- if($page =~ /^SDL\b/)
+ if($page =~ /^SDL(x)?\b/)
{
$page =~ s/::([A-Z]+)/-$1/g;
- $page =~ s/(.*)::(.*)/\/$1.html#$2/;
+ printf "%03d WARNING: " . $self->SUPER::page() . " better written as L<$2|$1/\"$2\">\n", ++$warn if $self->SUPER::page() =~ /(.*)::([a-z_]+)$/;
+
+ $page =~ s/(.*)\/"(.*)"/\/$1.html#$2/;
$page .= '.html' unless $page =~ /\.html/;
+ #print $self->SUPER::page() . " -> " . $page . "\n" if $page =~ /Event/;
return $page;
}
else
return "http://search.cpan.org/perldoc?$page";
}
}
+ elsif($self->SUPER::type() eq 'item')
+ {
+ my $page = $self->SUPER::page();
+ my $node = $self->SUPER::node();
+ my $suff = '';
+
+ if($page =~ /^SDL(x)?\b/)
+ {
+ $page =~ s/::([A-Z]+)/-$1/g;
+ $node =~ s/"//g;
+
+ return "/$page.html#$node";
+ }
+ else
+ {
+ return "http://search.cpan.org/perldoc?$page";
+ }
+ }
$self->SUPER::node(@_);
}
sub type
{
my $self = shift;
- return "hyperlink" if($self->SUPER::type() eq 'page');
+ return "hyperlink" if($self->SUPER::type() =~ /(page|item)/);
$self->SUPER::type(@_);
}