Updated docs
Kartik Thakore [Wed, 7 Jul 2010 13:00:47 +0000 (13:00 +0000)]
pages/SDL-Color.html-inc
pages/SDL-Cookbook-OpenGL.html-inc
pages/SDL-Cookbook.html-inc
pages/SDL-Cursor.html-inc
pages/SDL-Mouse.html-inc
pages/SDL-Rect.html-inc
pages/SDL-Surface.html-inc
pages/SDL-Time.html-inc
pages/SDL-Version.html-inc
pages/SDL.html-inc
pages/documentation.html-inc

index fe9ab3b..63d3375 100644 (file)
@@ -9,7 +9,7 @@
 <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_r_g_b">new ( $r, $g, $b )</a></li>
+<ul><li><a href="#new">new</a></li>
 <li><a href="#r">r</a></li>
 <li><a href="#g">g</a></li>
 <li><a href="#b">b</a></li>
 </div>
 <h1 id="SYNOPSIS">SYNOPSIS</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="SYNOPSIS_CONTENT">
-<pre>  my $black = SDL::Color-&gt;new( 0, 0, 0);
-  my $color = SDL::Color-&gt;new(255, 0, 0);
-  my $r = $color-&gt;r; # 255
-  my $g = $color-&gt;g; # 0
-  my $b = $color-&gt;b; # 0
-  $color-&gt;g(255);
-  $color-&gt;b(255);
-  # $color is now white
+<pre> my $black = SDL::Color-&gt;new(0, 0, 0);
+ my $color = SDL::Color-&gt;new(255, 0, 0);
+ my $r = $color-&gt;r; # 255
+ my $g = $color-&gt;g; # 0
+ my $b = $color-&gt;b; # 0
+ $color-&gt;g(255);
+ $color-&gt;b(255);
+ # $color is now white
 
 </pre>
 
 <div id="METHODS_CONTENT">
 
 </div>
-<h2 id="new_r_g_b">new ( $r, $g, $b )</h2>
-<div id="new_r_g_b_CONTENT">
-<p>The constructor creates a new color with the specified red, green and
-blue values:</p>
-<pre>  my $color = SDL::Color-&gt;new(255, 0, 0);
+<h2 id="new">new</h2>
+<div id="new_CONTENT">
+<pre> my $color = SDL::Color-&gt;new(255, 0, 0);
 
 </pre>
+<p>The constructor creates a new color with the specified red, green and blue values.</p>
 
 </div>
 <h2 id="r">r</h2>
 <div id="r_CONTENT">
-<p>If passed a value, this method sets the red component of the color;
-if not, it returns the red component of the color:</p>
-<pre>  my $r = $color-&gt;r; # 255
-  $color-&gt;r(128);
+<pre> my $r = $color-&gt;r;
+ $color-&gt;r(128);
 
 </pre>
+<p>If passed a value, this method sets the red component of the color;
+if not, it returns the red component of the color.</p>
 
 </div>
 <h2 id="g">g</h2>
 <div id="g_CONTENT">
-<p>If passed a value, this method sets the green component of the color;
-if not, it returns the green component of the color:</p>
-<pre>  my $g = $color-&gt;g; # 255
-  $color-&gt;g(128);
+<pre> my $g = $color-&gt;g;
+ $color-&gt;g(128);
 
 </pre>
+<p>If passed a value, this method sets the green component of the color;
+if not, it returns the green component of the color.</p>
 
 </div>
 <h2 id="b">b</h2>
 <div id="b_CONTENT">
-<p>If passed a value, this method sets the blue component of the color;
-if not, it returns the blue component of the color:</p>
-<pre>  my $b = $color-&gt;b; # 255
-  $color-&gt;b(128);
+<pre> my $b = $color-&gt;b;
+ $color-&gt;b(128);
 
 </pre>
+<p>If passed a value, this method sets the blue component of the color;
+if not, it returns the blue component of the color.</p>
 
 </div>
 <h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
index 11328ab..663bfd4 100644 (file)
@@ -45,7 +45,9 @@
        use SDL::Event;
        use OpenGL qw(:all);
 
-       my ($SDLAPP, $WIDTH, $HEIGHT, $SDLEVENT);
+</pre>
+<p>You can use OpenGL as needed here.</p>
+<pre>  my ($SDLAPP, $WIDTH, $HEIGHT, $SDLEVENT);
 
        $| = 1;
        $WIDTH = 1024;
        $SDLAPP = SDLx::App-&gt;new(-title =&gt; &quot;Opengl App&quot;, -width =&gt; $WIDTH, -height =&gt; $HEIGHT, -gl =&gt; 1);
        $SDLEVENT = SDL::Event-&gt;new;
 
-
-
-
-       glEnable(GL_DEPTH_TEST);
+</pre>
+<p>SDLx::App can start an OpenGL application with the parameter -gl =&gt; 1.</p>
+<pre>  glEnable(GL_DEPTH_TEST);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity;
        gluPerspective(60, $WIDTH / $HEIGHT, 1, 1000);
        glTranslatef(0, 0, -20);
 
-
-
-
-       while (1) {
+</pre>
+<p>Above we enable GL and set the correct prespective</p>
+<pre>  while (1) {
          &amp;handlepolls;
          glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
          glRotatef(.1, 1, 1, 1);
          $SDLAPP-&gt;sync;
        }
 
-
-
-
-
-
-
-       sub drawscene {
+</pre>
+<p>For SDLx::App sync handles the GL buffer clean.</p>
+<pre>  sub drawscene {
          my ($color, $x, $y, $z);
 
          for (-2 .. 2) {
 
 
 
-
-
-
-
-
-
-
-
-
        sub draw_cube {
          my (@indices, @vertices, $face, $vertex, $index, $coords);
 
          return &quot;&quot;;
        }
 
-
-
-
-
-
-
-
-
-
-       sub handlepolls {
+</pre>
+<p>Below we can use SDL::Events as normal:</p>
+<pre>  sub handlepolls {
          my ($type, $key);
 
          SDL::Events::pump_events();
 </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="http://search.cpan.org/perldoc?SDLx::App">SDLx::App</a> <a href="http://search.cpan.org/perldoc?OpenGL">OpenGL</a> </p>
 
 </div>
 </div>
\ No newline at end of file
index 6582a86..47415c0 100644 (file)
@@ -5,7 +5,8 @@
 <ul><li><a href="#NAME">NAME</a>
 <ul><li><a href="#CATEGORY">CATEGORY</a></li>
 <li><a href="#First_Steps">First Steps</a></li>
-<li><a href="#PDL_with_SDL">PDL with SDL</a>
+<li><a href="#PDL_with_SDL">PDL with SDL</a></li>
+<li><a href="#POGL_with_SDL">POGL with SDL</a>
 </li>
 </ul>
 </li>
 </div>
 <h2 id="PDL_with_SDL">PDL with SDL</h2>
 <div id="PDL_with_SDL_CONTENT">
-<p>Attaching a PDL piddle object to SDL. <a href="SDL-Cookbook-PDL.html">SDL::Cookbook::PDL</a>
-</p>
+<p>Attaching a PDL piddle object to SDL. <a href="SDL-Cookbook-PDL.html">SDL::Cookbook::PDL</a></p>
+
+</div>
+<h2 id="POGL_with_SDL">POGL with SDL</h2>
+<div id="POGL_with_SDL_CONTENT">
+<p>Starting an OpenGL app with SDLx::App. <a href="SDL-Cookbook-OpenGL.html">SDL::Cookbook::OpenGL</a></p>
+<p>Sending textures to Perl OpenGL. <a href="SDL-Cookbook-POGL.html">SDL::Cookbook::POGL</a></p>
 
 </div>
 </div>
\ No newline at end of file
index 289bf2e..a29b3e6 100644 (file)
@@ -18,7 +18,7 @@
 
 <h1 id="NAME">NAME</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="NAME_CONTENT">
-<p>SDL::Cursor -- Mouse cursor structure</p>
+<p>SDL::Cursor - Mouse cursor structure</p>
 
 </div>
 <h1 id="CATEGORY">CATEGORY</h1><p><a href="#TOP" class="toplink">Top</a></p>
@@ -34,7 +34,8 @@
      $width,
      $height,
      $hotspot_left,
-     $hotspot_top );
+     $hotspot_top
+ );
 
  SDL::Mouse::set_cursor($cursor);
 
@@ -43,9 +44,8 @@
 </div>
 <h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="DESCRIPTION_CONTENT">
-<p>the <code>SDL::Cursor</code> module handles mouse cursors, and provide the developer to
-use custom made cursors. Note that the cursors can only be in black and
-white.</p>
+<p>The <code>SDL::Cursor</code> module handles mouse cursors, and allows the developer to use custom-made cursors.
+Note that cursors can only be in black and white.</p>
 
 </div>
 <h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p>
@@ -54,8 +54,13 @@ white.</p>
 </div>
 <h2 id="new">new</h2>
 <div id="new_CONTENT">
-<p>Create a cursor using the specified data and mask (in MSB format). The cursor width must be a multiple of 8 bits.</p>
-<p>The cursor is created in black and white according to the following:</p>
+<pre> my $cursor = SDL::Cursor-&gt;new(
+     \@data, \@mask, $width, $height, $hotspot_left, $hotspot_top
+ );
+
+</pre>
+<p>Create a cursor using the specified data and mask (in MSB format).
+The cursor is created in black and white according to the following:</p>
 <pre> Data / Mask   Resulting pixel on screen
     0 / 1      White
     1 / 1      Black
@@ -63,17 +68,17 @@ white.</p>
     1 / 0      Inverted color if possible, black if not.
 
 </pre>
-<p>Cursors created with this function must be freed with SDL_FreeCursor.</p>
-<p>If you want to have color cursor, then this function is not for you; instead, you must hide normal system cursor with <code>SDL::Cursor-</code>new&gt;
-and in your main loop, when you draw graphics, also draw a <code>SDL::Surface</code> at the location of the mouse cursor. </p>
+<p>If you want to have color cursor, then this function is not for you.
+Instead, you should hide the cursor with <code>SDL::Mouse::show_cursor(SDL_DISABLE)</code>.
+Then in your main loop, when you draw graphics, draw a <code>SDL::Surface</code> at the location of the mouse cursor.</p>
 <p>Example:</p>
 <pre> use SDL;
- use SDL::Cursor;
- use SDL::Mouse;
  use SDL::Video;
+ use SDL::Mouse;
+ use SDL::Cursor;
 
  SDL::init(SDL_INIT_VIDEO);
- SDL::Video::set_video_mode( 640, 480, 16, SDL_SWSURFACE);
+ SDL::Video::set_video_mode(640, 480, 16, SDL_SWSURFACE);
 
  my @data = (
      0b00000000,
@@ -85,7 +90,6 @@ and in your main loop, when you draw graphics, also draw a <code>SDL::Surface</c
      0b00111100,
      0b00000000
  );
-
  my @mask = (
      0b00111100,
      0b01111110,
@@ -96,20 +100,39 @@ and in your main loop, when you draw graphics, also draw a <code>SDL::Surface</c
      0b01111110,
      0b00111100
  );
-
- my $cursor = SDL::Cursor-&gt;new( \@data, \@mask, 8, 8, 0, 0 );
-
+ my $cursor = SDL::Cursor-&gt;new(\@data, \@mask, 8, 8, 0, 0);
  sleep(1);
- SDL::Mouse::set_cursor($cursor);
 
+ SDL::Mouse::set_cursor($cursor);
  sleep(5);
 
 </pre>
+<p>The width of cursors work in groups of 8.
+If the width is above 8, twice the amount of elements in <code>@data</code> and <code>@mask</code> are required.
+If the width is above 16, three times are required, and so on.
+For example, if you wanted a 9 pixel crosshair you might do the following:</p>
+<pre> my @data = (
+     0b00001000,0b00000000,
+     0b00001000,0b00000000,
+     0b00001000,0b00000000,
+     0b00001000,0b00000000,
+     0b11111111,0b10000000,
+     0b00001000,0b00000000,
+     0b00001000,0b00000000,
+     0b00001000,0b00000000,
+     0b00001000,0b00000000,
+ );
+ my @mask = @data;
+
+ my $cursor = SDL::Cursor-&gt;new(\@data, \@mask, 9, 9, 4, 4);
+
+</pre>
+<p>The hotspot is offset by 4 pixels because a crosshair clicks from the center instead of the top left.</p>
 
 </div>
 <h1 id="AUTHOR">AUTHOR</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="AUTHOR_CONTENT">
-<p>David J. Goehrig, Tobias Leich</p>
+<p>David J. Goehrig, Tobias Leich, Blaizer</p>
 
 </div>
 <h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
index ecb828d..afc11ef 100644 (file)
@@ -4,20 +4,22 @@
 
 <ul><li><a href="#NAME">NAME</a></li>
 <li><a href="#CATEGORY">CATEGORY</a></li>
+<li><a href="#CONSTANTS">CONSTANTS</a></li>
 <li><a href="#METHODS">METHODS</a>
 <ul><li><a href="#warp_mouse">warp_mouse</a></li>
 <li><a href="#set_cursor">set_cursor</a></li>
 <li><a href="#get_cursor">get_cursor</a></li>
-<li><a href="#show_cursor">show_cursor</a>
-</li>
+<li><a href="#show_cursor">show_cursor</a></li>
 </ul>
 </li>
+<li><a href="#SEE_ALSO">SEE ALSO</a>
+</li>
 </ul><hr />
 <!-- INDEX END --><a href="assets/Mouse.png" target="_blank"><img src="assets/Mouse.png" style="height: 160px" alt="Mouse.png"/></a><hr />
 
 <h1 id="NAME">NAME</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="NAME_CONTENT">
-<p>SDL::Mouse -- SDL Bindings for the Mouse device</p>
+<p>SDL::Mouse - SDL Bindings for the Mouse device</p>
 
 </div>
 <h1 id="CATEGORY">CATEGORY</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <p>Core, Mouse</p>
 
 </div>
+<h1 id="CONSTANTS">CONSTANTS</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="CONSTANTS_CONTENT">
+<p>The constants for SDL::Mouse belong to SDL::Events/SDL::Event, under the export tag of <code>':state'</code>.</p>
+
+</div>
 <h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="METHODS_CONTENT">
 
 </div>
 <h2 id="warp_mouse">warp_mouse</h2>
 <div id="warp_mouse_CONTENT">
-<pre> void warp_mouse( int $x, int $y );
+<pre> SDL::Mouse::warp_mouse( $x, $y );
 
 </pre>
-<p>Set the position of the mouse cursor (generates a mouse motion event).</p>
+<p>Set the position of the mouse cursor (generates a mouse motion event).
+Even if the mouse is warped to where it currently is, a mouse motion event is generated.</p>
 
 </div>
 <h2 id="set_cursor">set_cursor</h2>
 <div id="set_cursor_CONTENT">
-<pre> void set_cursor( object );
+<pre> SDL::Mouse::set_cursor( $cursor_object );
 
 </pre>
-<p>Sets the currently active cursor to the specified one. If the cursor is currently visible, the change will be immediately represented 
-on the display. <code>set_cursor()</code> can be used to force cursor redraw, if this is desired for any reason. </p>
+<p>Sets the currently active cursor to the specified one.
+See <a href="SDL-Cursor.html">SDL::Cursor</a> for details on cursor objects.
+If the cursor is currently visible, the change will be immediately represented on the display.
+<code>set_cursor()</code> can be used to force cursor redraw, if this is desired for any reason.</p>
 
 </div>
 <h2 id="get_cursor">get_cursor</h2>
 <div id="get_cursor_CONTENT">
-<pre> object get_cursor();
+<pre> my $cursor_object = SDL::Mouse::get_cursor;
 
 </pre>
 <p>Gets the currently active mouse cursor.</p>
@@ -56,17 +66,19 @@ on the display. <code>set_cursor()</code> can be used to force cursor redraw, if
 </div>
 <h2 id="show_cursor">show_cursor</h2>
 <div id="show_cursor_CONTENT">
-<pre> int show_cursor( int toggle );
+<pre> my $return = SDL::Mouse::show_cursor( $state );
 
 </pre>
-<p>Toggle whether or not the cursor is shown on the screen. Passing <code>SDL_ENABLE</code> displays the cursor and passing <code>SDL_DISABLE</code> hides it. 
+<p>Toggle whether or not the cursor is shown on the screen.
+Passing <code>SDL_ENABLE</code> displays the cursor and passing <code>SDL_DISABLE</code> hides it.
 The current state of the mouse cursor can be queried by passing <code>SDL_QUERY</code>, either <code>SDL_DISABLE</code> or <code>SDL_ENABLE</code> will be returned.</p>
 <pre> use SDL;
  use SDL::Mouse;
  use SDL::Video;
+ use SDL::Events ':state'; #For the constants
 
  SDL::init(SDL_INIT_VIDEO);
- SDL::Video::set_video_mode( 640, 480, 16, SDL_SWSURFACE);
+ SDL::Video::set_video_mode(640, 480, 16, SDL_SWSURFACE);
 
  printf(&quot;Cursor is %s\n&quot;, SDL::Mouse::show_cursor(SDL_QUERY) ? 'visible' : 'not visible');
 
@@ -85,4 +97,9 @@ The current state of the mouse cursor can be queried by passing <code>SDL_QUERY<
 </pre>
 
 </div>
+<h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="SEE_ALSO_CONTENT">
+<p><a href="SDL-Cursor.html">SDL::Cursor</a></p>
+
+</div>
 </div>
\ No newline at end of file
index cdcd1ed..d425df0 100644 (file)
@@ -9,7 +9,7 @@
 <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_x_y_w_h">new ( $x, $y, $w, $h )</a></li>
+<ul><li><a href="#new">new</a></li>
 <li><a href="#x">x</a></li>
 <li><a href="#y">y</a></li>
 <li><a href="#w">w</a></li>
 </div>
 <h1 id="SYNOPSIS">SYNOPSIS</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="SYNOPSIS_CONTENT">
-<pre>  my $rect = SDL::Rect-&gt;new( 0, 0, 0, 0 );
-  $rect-&gt;x(1);
-  $rect-&gt;y(2);
-  $rect-&gt;w(3);
-  $rect-&gt;h(4);
-  my $x = $rect-&gt;x; # 1
-  my $y = $rect-&gt;y; # 2
-  my $w = $rect-&gt;w; # 3
-  my $h = $rect-&gt;h; # 4
+<pre> my $rect = SDL::Rect-&gt;new(0, 0, 50, 4);
+ $rect-&gt;x(1);
+ $rect-&gt;y(2);
+ $rect-&gt;w(3);
+ my $x = $rect-&gt;x; # 1
+ my $y = $rect-&gt;y; # 2
+ my $w = $rect-&gt;w; # 3
+ my $h = $rect-&gt;h; # 4
 
 </pre>
 
 <div id="METHODS_CONTENT">
 
 </div>
-<h2 id="new_x_y_w_h">new ( $x, $y, $w, $h )</h2>
-<div id="new_x_y_w_h_CONTENT">
-<p>The constructor creates a new rectangle with the specified x, y, w, h
-values:</p>
-<pre>    my $rect = SDL::Rect-&gt;new( 0, 0, 0, 0 );
+<h2 id="new">new</h2>
+<div id="new_CONTENT">
+<pre> my $rect = SDL::Rect-&gt;new( $x, $y, $w, $h );
 
 </pre>
+<p>The constructor creates a new rectangle with the specified x, y, width and height values.</p>
 
 </div>
 <h2 id="x">x</h2>
 <div id="x_CONTENT">
-<p>If passed a value, this method sets the x component of the rectangle;
-if not, it returns the x component of the rectangle:</p>
-<pre>  my $x = $rect-&gt;x; # 255
-  $rect-&gt;x(128);
+<pre> my $x = $rect-&gt;x;
+ $rect-&gt;x(128);
 
 </pre>
+<p>If passed a value, this method sets the x component of the rectangle;
+if not, it returns the x component of the rectangle.</p>
 
 </div>
 <h2 id="y">y</h2>
 <div id="y_CONTENT">
-<p>If passed a value, this method sets the y component of the rectangle;
-if not, it returns the y component of the rectangle:</p>
-<pre>  my $y = $rect-&gt;y; # 255
-  $rect-&gt;y(128);
+<pre> my $y = $rect-&gt;y;
+ $rect-&gt;y(128);
 
 </pre>
+<p>If passed a value, this method sets the y component of the rectangle;
+if not, it returns the y component of the rectangle.</p>
 
 </div>
 <h2 id="w">w</h2>
 <div id="w_CONTENT">
-<p>If passed a value, this method sets the w component of the rectangle;
-if not, it returns the w component of the rectangle:</p>
-<pre>  my $w = $rect-&gt;w; # 255
-  $rect-&gt;w(128);
+<pre> my $w = $rect-&gt;w;
+ $rect-&gt;w(128);
 
 </pre>
+<p>If passed a value, this method sets the w component of the rectangle;
+if not, it returns the w component of the rectangle.</p>
 
 </div>
 <h2 id="h">h</h2>
 <div id="h_CONTENT">
-<p>If passed a value, this method sets the h component of the rectangle;
-if not, it returns the h component of the rectangle:</p>
-<pre>  my $h = $rect-&gt;h; # 255
-  $rect-&gt;h(128);
+<pre> my $h = $rect-&gt;h;
+ $rect-&gt;h(128);
 
 </pre>
+<p>If passed a value, this method sets the h component of the rectangle;
+if not, it returns the h component of the rectangle.</p>
 
 </div>
 <h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
index 83709ba..6fe35f3 100644 (file)
@@ -8,27 +8,17 @@
 <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
 <li><a href="#CONSTANTS">CONSTANTS</a></li>
 <li><a href="#METHODS">METHODS</a>
-<ul><li><a href="#new_flags_width_height_depth_Rmask_G">new ( flags, width, height, depth, Rmask, Gmask, Bmask, Amask )</a></li>
-<li><a href="#new_from_surface_width_height_depth_">new_from ( surface, width, height, depth, Rmask, Gmask, Bmask, Amask )</a>
-<ul><li><a href="#Construtor_Parameters">Construtor Parameters</a>
-<ul><li><a href="#flags">flags</a></li>
-</ul>
-</li>
-</ul>
-</li>
+<ul><li><a href="#new">new</a></li>
+<li><a href="#new_from">new_from</a></li>
 <li><a href="#w">w</a></li>
 <li><a href="#h">h</a></li>
 <li><a href="#format">format</a></li>
 <li><a href="#pitch">pitch</a></li>
-<li><a href="#clip_rect">clip_rect</a></li>
 </ul>
 </li>
 <li><a href="#Direct_Write_to_Surface_Pixel">Direct Write to Surface Pixel</a>
 <ul><li><a href="#get_pixel">get_pixel</a></li>
-<li><a href="#set_pixels">set_pixels</a>
-<ul><li><a href="#Usage">Usage</a></li>
-</ul>
-</li>
+<li><a href="#set_pixels">set_pixels</a></li>
 <li><a href="#get_pixels_ptr">get_pixels_ptr</a></li>
 </ul>
 </li>
@@ -39,7 +29,7 @@
 
 <h1 id="NAME">NAME</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="NAME_CONTENT">
-<p>SDL::Surface - Graphic surface structure.</p>
+<p>SDL::Surface - Graphic surface structure</p>
 
 </div>
 <h1 id="CATEGORY">CATEGORY</h1><p><a href="#TOP" class="toplink">Top</a></p>
 </div>
 <h1 id="SYNOPSIS">SYNOPSIS</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="SYNOPSIS_CONTENT">
-<p>The main surface (display) is provided by <a href="/SDL-Video.html#set_video_mode">SDL::Video::set_video_mode</a>.
-  use SDL; #provides flags &amp; constants
-  use SDL::Video; #provides access to set_video_mode
-  use SDL::Surface; #provides access to SDL_Surface struct internals</p>
-<pre>  SDL::init(SDL_INIT_VIDEO); 
-  my $display = SDL::Video::set_video_mode(); 
+<pre> use SDL;
+ use SDL::Video;
+ use SDL::Surface;
 
-</pre>
-<p>All surfaces constructed from now on are attached to the $display. There are two constructors available to do this.</p>
-<pre>  my $surface  = SDL::Surface-&gt;new ( ... ); 
-  my $surface2 = SDL::Surface-&gt;new_from ( surface, ... ); 
+ # Create the main surface (display)
+ SDL::init(SDL_INIT_VIDEO);
+ my $display = SDL::Video::set_video_mode(640, 480, 16, SDL_SWSURFACE);
+
+ # Create other surfaces attached to the $display.
+ my $surface  = SDL::Surface-&gt;new(SDL_ASYNCBLIT | SDL_HWSURFACE, 640, 480, 16, 0, 0, 0, 0);
+ my $surface2 = SDL::Surface-&gt;new_from($surface, 100, 100, 8, 0, 0, 0, 0);
 
 </pre>
 
 </div>
 <h1 id="CONSTANTS">CONSTANTS</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="CONSTANTS_CONTENT">
-<p>The constants are exported by default. You can avoid this by doing:</p>
-<pre> use SDL::Video ();
-
-</pre>
-<p>and access them directly:</p>
-<pre> SDL::Video::SDL_SWSURFACE;
-
-</pre>
-<p>Available constants: see <a href="#flags">flags</a></p>
-
-</div>
-<h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p>
-<div id="METHODS_CONTENT">
-
-</div>
-<h2 id="new_flags_width_height_depth_Rmask_G">new ( flags, width, height, depth, Rmask, Gmask, Bmask, Amask )</h2>
-<div id="new_flags_width_height_depth_Rmask_G-2">
-<p>The constructor creates a new surface with the specified parameter values.</p>
-<pre>    my $surface = SDL::Surface-&gt;new( ... );
-
-</pre>
-
-</div>
-<h2 id="new_from_surface_width_height_depth_">new_from ( surface, width, height, depth, Rmask, Gmask, Bmask, Amask )</h2>
-<div id="new_from_surface_width_height_depth_-2">
-<p>The constructor creates a new surface with the specified parameter values. </p>
-<pre>    my $surface = SDL::Surface-&gt;new_from( $old_surface, ... );
-
-
-
-
-</pre>
-
-</div>
-<h3 id="Construtor_Parameters">Construtor Parameters</h3>
-<div id="Construtor_Parameters_CONTENT">
-
-</div>
-<h4 id="flags">flags</h4>
-<div id="flags_CONTENT">
-<p>Available flags for new() are exported by SDL::Video</p>
+<p>The constants for SDL::Surface belong to SDL::Video, under the export tag of <code>':surface'</code>.</p>
 <dl>
        <dt>SDL_ASYNCBLIT</dt>
        <dd>
        </dd>
        <dt>SDL_SWSURFACE</dt>
        <dd>
-               <p>Stored in the system memory.</p>
+               <p>Store in system memory</p>
        </dd>
        <dt>SDL_HWSURFACE</dt>
        <dd>
-               <p>Stored in video memory</p>
+               <p>Store in video memory</p>
        </dd>
 </dl>
 
 </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">
+<pre> my $surface = SDL::Surface-&gt;new(
+     $flags, $width, $height, $depth, $Rmask, $Gmask, $Bmask, $Amask
+ );
+
+</pre>
+<p>The constructor creates a new surface with the specified parameter values.</p>
+<p>The four mask values are the bits that the channel will ignore.
+For example, an Rmask of <code>0xFF</code> will ignore that channel completely, making everything on the surface more green/blue.</p>
+
+</div>
+<h2 id="new_from">new_from</h2>
+<div id="new_from_CONTENT">
+<pre> my $surface = SDL::Surface-&gt;new_from(
+     $surface, $width, $height, $depth, $Rmask, $Gmask, $Bmask, $Amask
+ );
+
+</pre>
+<p>The constructor creates a new surface with the specified parameter values.
+The flags are taken from the specified <code>$surface</code>.</p>
+
+</div>
 <h2 id="w">w</h2>
 <div id="w_CONTENT">
-<p>SDL::Surface width are defined at construction. Thus the following is read only. </p>
-<pre>  my $w = $surface-&gt;w; 
+<pre> my $w = $surface-&gt;w;
 
 </pre>
+<p>Returns the width of the surface.
+SDL::Surface width is defined at construction so this is read-only.</p>
 
 </div>
 <h2 id="h">h</h2>
 <div id="h_CONTENT">
-<p>SDL::Surface height are defined at construction. Thus the following is read only. </p>
-<pre>  my $h = $surface-&gt;h; 
+<pre> my $h = $surface-&gt;h;
 
 </pre>
+<p>Returns the height of the surface.
+SDL::Surface height is defined at construction so this is read-only.</p>
 
 </div>
 <h2 id="format">format</h2>
 <div id="format_CONTENT">
-<p>The format of the pixels stored in the surface. See <a href="SDL-PixelFormat.html">SDL::PixelFormat</a></p>
 <pre> my $format = $surface-&gt;format;
 
 </pre>
+<p>The format of the pixels stored in the surface.
+See <a href="SDL-PixelFormat.html">SDL::PixelFormat</a></p>
 
 </div>
 <h2 id="pitch">pitch</h2>
 <pre> my $pitch = $surface-&gt;pitch;
 
 </pre>
-<p>SDL::Surface's scanline length in bytes</p>
-
-</div>
-<h2 id="clip_rect">clip_rect</h2>
-<div id="clip_rect_CONTENT">
-<p>To get the surface's clip_rect we the following</p>
-<pre> my $clip_rect = SDL::Rect-&gt;new(0,0,0,0);
- SDL::Video::get_clip_rect($surface, $clip_rect);
-
-</pre>
-<p>To set the surface's clip_rect use the following</p>
-<pre> my $clip_rect = SDL::Rect-&gt;new(2,23,23,542);
- SDL::Video::set_clip_rect($surface, $clip_rect);
-
-</pre>
+<p>The scanline length in bytes.</p>
 
 </div>
 <h1 id="Direct_Write_to_Surface_Pixel">Direct Write to Surface Pixel</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="Direct_Write_to_Surface_Pixel_CONTEN">
-<p>Disclaimer: This can be very slow, it is suitable for creating surfaces one time and not for animations</p>
+<p><strong>Disclaimer:</strong> The following methods can be very slow, making them suitable for creating surfaces, but not for animations</p>
 
 </div>
 <h2 id="get_pixel">get_pixel</h2>
 <div id="get_pixel_CONTENT">
-<pre> my $pixel = $surface-&gt;get_pixel( $offset )  
+<pre> my $pixel = $surface-&gt;get_pixel( $offset )
 
 </pre>
-<p>Returns the pixel value for the given <code>$offset</code>. The pixel value depends on current pixel format.</p>
-<p><strong>Note</strong>: For surfaces with a palette (1 byte per pixel) the palette index is returned instead of color values.</p>
+<p>Returns the pixel value for the given <code>$offset</code>.
+The pixel value depends on current pixel format.</p>
+<p><strong>Note:</strong> For surfaces with a palette (1 byte per pixel) the palette index is returned instead of color values.</p>
 
 </div>
 <h2 id="set_pixels">set_pixels</h2>
 <pre> $surface-&gt;set_pixels( $offset, $value );
 
 </pre>
-<p>Sets the current pixel <code>$value</code> to the given <code>$offset</code>. The pixel value must fit the pixel format of the surface.</p>
+<p>Sets the pixel <code>$value</code> to the given <code>$offset</code>.
+The pixel value must fit the pixel format of the surface.</p>
 <p><strong>Note</strong>: For surfaces with a palette (1 byte per pixel) the palette index must be passed instead of color values.</p>
-
-</div>
-<h3 id="Usage">Usage</h3>
-<div id="Usage_CONTENT">
-<pre> sub putpixel
- {
-     my($x, $y, $color) = @_;
-     $screen-&gt;set_pixels( $x + $y * $screen-&gt;w, $color);
+<p>Example:</p>
+<pre> sub putpixel {
+     my ($x, $y, $color) = @_;
+     $display-&gt;set_pixels( $x + $y * $display-&gt;w, $color);
  }
 
 </pre>
-<p>See also examples/sols/ch02.pl</p>
+<p>See also <cite>examples/pixel_operations/sols/ch02.pl</cite>!</p>
 
 </div>
 <h2 id="get_pixels_ptr">get_pixels_ptr</h2>
 <div id="get_pixels_ptr_CONTENT">
-<pre> $surface-&gt;get_pixels_ptr();
+<pre> my $ptr = $surface-&gt;get_pixels_ptr;
 
 </pre>
-<p>Returns the C ptr to this surfaces's pixels</p>
-
-
-
-
-
-
-
+<p>Returns a reference to the surface's pixels.</p>
 
 </div>
 <h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p>
index 5d5ff24..4fc5489 100644 (file)
@@ -6,8 +6,8 @@
 <li><a href="#CATEGORY">CATEGORY</a></li>
 <li><a href="#SYNOPSIS">SYNOPSIS</a></li>
 <li><a href="#METHODS">METHODS</a>
-<ul><li><a href="#add_timer_interval_callback">add_timer(interval, callback)</a></li>
-<li><a href="#remove_timer_id">remove_timer(id)</a>
+<ul><li><a href="#add_timer">add_timer</a></li>
+<li><a href="#remove_timer">remove_timer</a>
 </li>
 </ul>
 </li>
 </div>
 <h1 id="SYNOPSIS">SYNOPSIS</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="SYNOPSIS_CONTENT">
-<pre> use threads;
+<pre> use warnings;
+ use strict;
+
+ use threads;
  use threads::shared;
 
- use SDL ':all';
  use SDL::Time;
 
  package foo;
 
+ use SDL ':all';
+
  SDL::init(SDL_INIT_TIMER);
 
  my $tick :shared = 0;
 <div id="METHODS_CONTENT">
 
 </div>
-<h2 id="add_timer_interval_callback">add_timer(interval, callback)</h2>
-<div id="add_timer_interval_callback_CONTENT">
-<p>This runs in a separate thread and a cloned Perl thread.</p>
-<p>The <code>callback</code> function, specified with a string of the function's name, will be called after the milliseconds of <code>interval</code> have elapsed.
+<h2 id="add_timer">add_timer</h2>
+<div id="add_timer_CONTENT">
+<pre> my $id = SDL::Timer::add_timer( $ms_interval, $callback );
+
+</pre>
+<p>This runs in a separate thread and a cloned Perl thread.
+<code>threads</code> and <code>threads::shared</code> must be used to share any variables the timer uses.</p>
+<p>The <code>$callback</code> function, specified with a string of the function's name, will be called after the milliseconds of <code>$interval</code> have elapsed.
 The actual delay may be longer than specified depending on the underlying OS.
-The callback function is passed the current timer interval as well as the <code>interval</code> parameter and should return the next timer interval.
+The callback function is passed the current timer interval as well as the <code>$interval</code> parameter and should return the next timer interval.
 If the return value from the callback is 0, the timer is cancelled; otherwise, the timer will continue to run.</p>
 <p>The timer callback function may run in a different thread to your main program, so it shouldn't call any functions from within itself.
 You may call SDL::push_event, however.</p>
@@ -67,10 +75,13 @@ You may call SDL::push_event, however.</p>
 <p><strong>Note:</strong> You must initialize (<code>SDL::init</code>) the timer subsystem to use this function.</p>
 
 </div>
-<h2 id="remove_timer_id">remove_timer(id)</h2>
-<div id="remove_timer_id_CONTENT">
-<p>The other way to cancel a timer is to use <code>SDL::Time::remove_timer</code> on the <code>id</code> of a timer.
-This <code>id</code> is the return value of the <code>SDL::Time::remove_timer</code> function.</p>
+<h2 id="remove_timer">remove_timer</h2>
+<div id="remove_timer_CONTENT">
+<pre> SDL::Timer::remove_timer( $id );
+
+</pre>
+<p>The other way to cancel a timer is to use <code>SDL::Time::remove_timer</code> on the <code>$id</code> of a timer.
+This ID is the return value of the <code>SDL::Time::add_timer</code> function.</p>
 <p><code>SDL::Time::remove_timer</code> returns <code>0</code> on success or <code>-1</code> on error.</p>
 
 </div>
index 97af187..512c582 100644 (file)
@@ -7,9 +7,9 @@
 <li><a href="#SYNOPSIS">SYNOPSIS</a></li>
 <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
 <li><a href="#METHODS">METHODS</a>
-<ul><li><a href="#major">major()</a></li>
-<li><a href="#minor">minor()</a></li>
-<li><a href="#patch">patch()</a>
+<ul><li><a href="#major">major</a></li>
+<li><a href="#minor">minor</a></li>
+<li><a href="#patch">patch</a>
 </li>
 </ul>
 </li>
 <h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="DESCRIPTION_CONTENT">
 <p>The <code>SDL::Version</code> structure is used by the <code>SDL::linked_version</code> function and the <code>SDL::version</code> macro.
-The <code>SDL::linked_version</code> function returns the link-time SDL version whereas <code>SDL::version</code> returns the compile-time SDL version.</p>
+The <code>SDL::linked_version</code> function returns the link-time SDL version whereas <code>SDL::version</code> returns the compile-time SDL version.
+<strong>Note:</strong> This is the SDL version, not the SDL_Perl version.
+The SDL_Perl version is in <code>$SDL::VERSION</code>.</p>
 
 </div>
 <h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p>
 <div id="METHODS_CONTENT">
 
 </div>
-<h2 id="major">major()</h2>
+<h2 id="major">major</h2>
 <div id="major_CONTENT">
 <p>Returns the major version number.</p>
 
 </div>
-<h2 id="minor">minor()</h2>
+<h2 id="minor">minor</h2>
 <div id="minor_CONTENT">
 <p>Returns the minor version number.</p>
 
 </div>
-<h2 id="patch">patch()</h2>
+<h2 id="patch">patch</h2>
 <div id="patch_CONTENT">
 <p>Returns the patch version number.</p>
 
index 73216f2..ee6419f 100644 (file)
@@ -8,21 +8,21 @@
 <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
 <li><a href="#CONSTANTS">CONSTANTS</a></li>
 <li><a href="#METHODS">METHODS</a>
-<ul><li><a href="#init_flags">init(flags)</a></li>
-<li><a href="#init_subsystem_flags">init_subsystem(flags)</a></li>
-<li><a href="#quit_subsystem_flags">quit_subsystem(flags)</a></li>
-<li><a href="#quit">quit()</a></li>
-<li><a href="#was_init_flags">was_init(flags)</a></li>
-<li><a href="#get_error">get_error()</a></li>
-<li><a href="#set_error_real_error_values">set_error_real(error, @values)</a></li>
-<li><a href="#clear_error">clear_error()</a></li>
-<li><a href="#version">version()</a></li>
-<li><a href="#linked_version">linked_version()</a></li>
-<li><a href="#get_ticks">get_ticks()</a></li>
-<li><a href="#delay_ms">delay(ms)</a></li>
+<ul><li><a href="#init">init</a></li>
+<li><a href="#init_subsystem">init_subsystem</a></li>
+<li><a href="#quit_subsystem">quit_subsystem</a></li>
+<li><a href="#quit">quit</a></li>
+<li><a href="#was_init">was_init</a></li>
+<li><a href="#get_error">get_error</a></li>
+<li><a href="#set_error_real">set_error_real</a></li>
+<li><a href="#clear_error">clear_error</a></li>
+<li><a href="#version">version</a></li>
+<li><a href="#linked_version">linked_version</a></li>
+<li><a href="#get_ticks">get_ticks</a></li>
+<li><a href="#delay">delay</a></li>
 </ul>
 </li>
-<li><a href="#AUTHORS">AUTHORS</a>
+<li><a href="#AUTHOR">AUTHOR</a>
 </li>
 </ul><hr />
 <!-- INDEX END -->
@@ -79,44 +79,59 @@ For the object oriented programming interface please see the documentation provi
 <div id="METHODS_CONTENT">
 
 </div>
-<h2 id="init_flags">init(flags)</h2>
-<div id="init_flags_CONTENT">
+<h2 id="init">init</h2>
+<div id="init_CONTENT">
+<pre> SDL::init( $flags );
+
+</pre>
 <p>As with the C language API, SDL Perl initializes the SDL environment with the <code>SDL::init</code> subroutine.
 This routine takes a mode flag constructed through the bitwise OR product of the <code>SDL_INIT_*</code> constants.
-The <code>flags</code> tell <code>SDL::init</code> which subsystems to initialize.</p>
+The <code>$flags</code> tell <code>SDL::init</code> which subsystems to initialize.</p>
 <pre> SDL::init(SDL_INIT_AUDIO | SDL_INIT_JOYSTICK);
 
 </pre>
 <p><code>SDL::init</code> returns <code>0</code> on success, or <code>-1</code> on error.</p>
 
 </div>
-<h2 id="init_subsystem_flags">init_subsystem(flags)</h2>
-<div id="init_subsystem_flags_CONTENT">
-<p>After <code>SDL</code> has been initialized with <code>SDL::init</code> you may initialize any uninitialized subsystems with <code>SDL::init_subsystem</code>.
-The <code>flags</code> tell <code>SDL::init_subsystem</code> which subsystems to initialize, and are taken in the same way as <code>SDL::init</code>.</p>
+<h2 id="init_subsystem">init_subsystem</h2>
+<div id="init_subsystem_CONTENT">
+<pre> SDL::init_subsystem( $flags );
+
+</pre>
+<p>After SDL has been initialized with <code>SDL::init</code> you may initialize any uninitialized subsystems with <code>SDL::init_subsystem</code>.
+The <code>$flags</code> tell <code>SDL::init_subsystem</code> which subsystems to initialize, and are taken in the same way as <code>SDL::init</code>.</p>
 <p><code>SDL::init_subsystem</code> returns <code>0</code> on success, or <code>-1</code> on error.</p>
 
 </div>
-<h2 id="quit_subsystem_flags">quit_subsystem(flags)</h2>
-<div id="quit_subsystem_flags_CONTENT">
+<h2 id="quit_subsystem">quit_subsystem</h2>
+<div id="quit_subsystem_CONTENT">
+<pre> SDL::quit_subsystem( $flags );
+
+</pre>
 <p><code>SDL::quit_subsystem</code> allows you to shut down a subsystem that has been previously initialized by <code>SDL::init</code> or <code>SDL::init_subsystem</code>.
-The <code>flags</code> tell <code>SDL::quit_subsystem</code> which subsystems to shut down, and are taken in the same way as <code>SDL::init</code>.</p>
+The <code>$flags</code> tell <code>SDL::quit_subsystem</code> which subsystems to shut down, and are taken in the same way as <code>SDL::init</code>.</p>
 <p><code>SDL::quit_subsystem</code> doesn't return any values.</p>
 
 </div>
-<h2 id="quit">quit()</h2>
+<h2 id="quit">quit</h2>
 <div id="quit_CONTENT">
+<pre> SDL::quit;
+
+</pre>
 <p><code>SDL::quit</code> Shuts down all SDL subsystems, unloads the dynamically linked library and frees the allocated resources.</p>
 <p><strong>Note:</strong> This will be called automatically when Perl exits. You don't need to call this, except if you want to initialize SDL again after this.</p>
 <p><code>SDL::quit</code> doesn't return any values.</p>
 
 </div>
-<h2 id="was_init_flags">was_init(flags)</h2>
-<div id="was_init_flags_CONTENT">
+<h2 id="was_init">was_init</h2>
+<div id="was_init_CONTENT">
+<pre> my $flags = SDL::was_init( $flags );
+
+</pre>
 <p><code>SDL::was_init</code> allows you to see which SDL subsytems have been initialized.
-The <code>flags</code> tell <code>SDL::was_init</code> which subsystems to check, and are taken in the same way as <code>SDL::init</code>.</p>
+The <code>$flags</code> tell <code>SDL::was_init</code> which subsystems to check, and are taken in the same way as <code>SDL::init</code>.</p>
 <p><code>SDL::was_init</code> returns a mask of the initialized subsystems it checks.
-If <code>flags</code> is <code>0</code> or <code>SDL_INIT_EVERYTHING</code>, a mask of all initialized subsystems will be returned (this does not include <code>SDL_INIT_EVENTTHREAD</code> or <code>SDL_INIT_NOPARACHUTE</code>).</p>
+If <code>$flags</code> is <code>0</code> or <code>SDL_INIT_EVERYTHING</code>, a mask of all initialized subsystems will be returned (this does not include <code>SDL_INIT_EVENTTHREAD</code> or <code>SDL_INIT_NOPARACHUTE</code>).</p>
 <pre> use SDL ':all';
 
  my $mask = SDL::was_init(SDL_INIT_AUDIO | SDL_INIT_JOYSTICK);
@@ -127,49 +142,67 @@ If <code>flags</code> is <code>0</code> or <code>SDL_INIT_EVERYTHING</code>, a m
 </pre>
 
 </div>
-<h2 id="get_error">get_error()</h2>
+<h2 id="get_error">get_error</h2>
 <div id="get_error_CONTENT">
+<pre> my $error = SDL::get_error;
+
+</pre>
 <p>Returns a scalar value containing the last error message set by the SDL library (if any).</p>
 
 </div>
-<h2 id="set_error_real_error_values">set_error_real(error, @values)</h2>
-<div id="set_error_real_error_values_CONTENT">
+<h2 id="set_error_real">set_error_real</h2>
+<div id="set_error_real_CONTENT">
+<pre> SDL::set_error_real( $printf_format, @values )
+
+</pre>
 <p><code>SDL::set_error_real</code> sets the SDL error to a <code>printf</code> style formatted string.</p>
 <p><code>SDL::set_error_real</code> doesn't return any values.</p>
 
 </div>
-<h2 id="clear_error">clear_error()</h2>
+<h2 id="clear_error">clear_error</h2>
 <div id="clear_error_CONTENT">
+<pre> SDL::clear_error;
+
+</pre>
 <p><code>SDL::clear_error</code> deletes all information about the last SDL error.
 This is useful if the error has been handled by the program.</p>
 <p><code>SDL::clear_error</code> doesn't return any values.</p>
 
 </div>
-<h2 id="version">version()</h2>
+<h2 id="version">version</h2>
 <div id="version_CONTENT">
+<pre> my $version = SDL::version;
+
+</pre>
 <p>Returns an <code>SDL::Version</code> object of the SDL library at compile-time.</p>
 <pre> use SDL;
  use SDL::Version;
 
- my $v = SDL::version();
+ my $v = SDL::version;
  printf(&quot;got version: %d.%d.%d\n&quot;, $v-&gt;major, $v-&gt;minor, $v-&gt;patch);
 
 </pre>
 
 </div>
-<h2 id="linked_version">linked_version()</h2>
+<h2 id="linked_version">linked_version</h2>
 <div id="linked_version_CONTENT">
 <p><code>SDL::linked_version</code> works in the same way as <code>SDL::version</code>, but returns an <code>SDL::Version</code> object of the SDL library at link-time.</p>
 
 </div>
-<h2 id="get_ticks">get_ticks()</h2>
+<h2 id="get_ticks">get_ticks</h2>
 <div id="get_ticks_CONTENT">
+<pre> my $ticks = SDL::get_ticks;
+
+</pre>
 <p>Returns the number of milliseconds since SDL library initialization.
 This value wraps around if the program runs for more than 49.7 days</p>
 
 </div>
-<h2 id="delay_ms">delay(ms)</h2>
-<div id="delay_ms_CONTENT">
+<h2 id="delay">delay</h2>
+<div id="delay_CONTENT">
+<pre> SDL::delay( $ms );
+
+</pre>
 <p><code>SDL::delay</code> waits the specified number of milliseconds before returning.
 The actual delay may be longer than specified depending on the underlying OS.</p>
 <p><code>SDL::delay</code> doesn't return anything.</p>
@@ -179,8 +212,8 @@ The actual delay may be longer than specified depending on the underlying OS.</p
 </pre>
 
 </div>
-<h1 id="AUTHORS">AUTHORS</h1><p><a href="#TOP" class="toplink">Top</a></p>
-<div id="AUTHORS_CONTENT">
+<h1 id="AUTHOR">AUTHOR</h1><p><a href="#TOP" class="toplink">Top</a></p>
+<div id="AUTHOR_CONTENT">
 <p>magnet, kthakore, Blaizer</p>
 
 </div>
index 082b192..7328895 100644 (file)
@@ -1,2 +1,2 @@
 <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-3-mini.png" alt="thumb" /></td><td><a href="SDL-Credits.html">SDL::Credits</a></td><td>- Authors and contributors of the SDL Perl project</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-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-5-mini.png" alt="thumb" /></td><td><a href="SDL-Audio.html">SDL::Audio</a></td><td>- SDL Bindings for Audio</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-AudioCVT.html">SDL::AudioCVT</a></td><td>- Audio Conversion Structure</td></tr><tr><td><img src="assets/bubble-5-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-4-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-4-mini.png" alt="thumb" /></td><td><a href="SDL-CD.html">SDL::CD</a></td><td>- SDL Bindings for structure SDL_CD</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-CDTrack.html">SDL::CDTrack</a></td><td>- SDL Bindings for structure SDL_CDTrack</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Events</strong></td></tr><tr><td><img src="assets/bubble-2-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-1-mini.png" alt="thumb" /></td><td><a href="SDL-Event.html">SDL::Event</a></td><td>- General event structure</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Joystick</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Joystick.html">SDL::Joystick</a></td><td>- SDL Bindings for the Joystick device</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Mouse</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Mouse.html">SDL::Mouse</a></td><td>- SDL Bindings for the Mouse device</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Cursor.html">SDL::Cursor</a></td><td>- Mouse cursor structure</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Version.html">SDL::Version</a></td><td>- SDL Bindings for structure SDL_Version</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Video</strong></td></tr><tr><td><img src="assets/Video_thumb.png" alt="thumb" /></td><td><a href="SDL-Video.html">SDL::Video</a></td><td>- Bindings to the video category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Color.html">SDL::Color</a></td><td>- Format independent color description</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Overlay.html">SDL::Overlay</a></td><td>- YUV Video overlay</td></tr><tr><td><img src="assets/bubble-7-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-7-mini.png" alt="thumb" /></td><td><a href="SDL-Rect.html">SDL::Rect</a></td><td>- Defines a rectangular area</td></tr><tr><td><img src="assets/bubble-5-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-7-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-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></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">GFX</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Framerate.html">SDL::GFX::Framerate</a></td><td>- framerate calculating functions</td></tr><tr><td><img src="assets/bubble-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-5-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-FPSManager.html">SDL::GFX::FPSManager</a></td><td>- data structure used by SDL::GFX::Framerate</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Image</strong></td></tr><tr><td><img src="assets/bubble-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-1-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer.html">SDL::Mixer</a></td><td>- Sound and music functions</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Channels.html">SDL::Mixer::Channels</a></td><td>- SDL::Mixer channel functions and bindings</td></tr><tr><td><img src="assets/bubble-2-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-5-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Groups.html">SDL::Mixer::Groups</a></td><td>- Audio channel group functions</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Music.html">SDL::Mixer::Music</a></td><td>- functions for music</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Samples.html">SDL::Mixer::Samples</a></td><td>- functions for loading sound samples</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixChunk.html">SDL::Mixer::MixChunk</a></td><td>- SDL Bindings for structure SDL_MixChunk</td></tr><tr><td><img src="assets/bubble-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-2-mini.png" alt="thumb" /></td><td><a href="SDL-Pango.html">SDL::Pango</a></td><td>- Text rendering engine</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-Pango-Context.html">SDL::Pango::Context</a></td><td>- Context object for SDL::Pango</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">TODO</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-MPEG.html">SDL::MPEG</a></td><td>- a SDL perl extension</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-SMPEG.html">SDL::SMPEG</a></td><td>- a SDL perl extension</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">MultiThread</strong></td></tr><tr><td><img src="assets/bubble-4-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-4-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-BlitFunc.html">SDL::GFX::BlitFunc</a></td><td>- blitting functions</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-ImageFilter.html">SDL::GFX::ImageFilter</a></td><td>- image filtering functions</td></tr><tr><td><img src="assets/bubble-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-2-mini.png" alt="thumb" /></td><td><a href="SDL-TTF.html">SDL::TTF</a></td><td>- True Type Font functions (libfreetype)</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-2-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-1-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial.html">SDL::Tutorial</a></td><td>- introduction to Perl SDL</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Animation.html">SDL::Tutorial::Animation</a></td><td></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-LunarLander.html">SDL::Tutorial::LunarLander</a></td><td>- a small tutorial on Perl SDL</td></tr></table></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-1-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-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-5-mini.png" alt="thumb" /></td><td><a href="SDL-Audio.html">SDL::Audio</a></td><td>- SDL Bindings for Audio</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-1-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-5-mini.png" alt="thumb" /></td><td><a href="SDL-AudioSpec.html">SDL::AudioSpec</a></td><td>- SDL Bindings for structure SDL::AudioSpec</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">CDROM</strong></td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-CDROM.html">SDL::CDROM</a></td><td>- SDL Bindings for the CDROM device</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-CD.html">SDL::CD</a></td><td>- SDL Bindings for structure SDL_CD</td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-CDTrack.html">SDL::CDTrack</a></td><td>- SDL Bindings for structure SDL_CDTrack</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Events</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Events.html">SDL::Events</a></td><td>- Bindings to the Events Category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Event.html">SDL::Event</a></td><td>- General event structure</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Joystick</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Joystick.html">SDL::Joystick</a></td><td>- SDL Bindings for the Joystick device</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Mouse</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Mouse.html">SDL::Mouse</a></td><td>- SDL Bindings for the Mouse device</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Cursor.html">SDL::Cursor</a></td><td>- Mouse cursor structure</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-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-5-mini.png" alt="thumb" /></td><td><a href="SDL-Color.html">SDL::Color</a></td><td>- Format independent color description</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Overlay.html">SDL::Overlay</a></td><td>- YUV Video overlay</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-Palette.html">SDL::Palette</a></td><td>- Color palette for 8-bit pixel formats </td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-PixelFormat.html">SDL::PixelFormat</a></td><td>- Stores surface format information</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-Rect.html">SDL::Rect</a></td><td>- Defines a rectangular area</td></tr><tr><td><img src="assets/bubble-5-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-6-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-1-mini.png" alt="thumb" /></td><td><a href="SDLx-App.html">SDLx::App</a></td><td>- a SDL perl extension</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">GFX</strong></td></tr><tr><td><img src="assets/bubble-6-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-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-1-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-7-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-3-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Music.html">SDL::Mixer::Music</a></td><td>- functions for music</td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-Samples.html">SDL::Mixer::Samples</a></td><td>- functions for loading sound samples</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixChunk.html">SDL::Mixer::MixChunk</a></td><td>- SDL Bindings for structure SDL_MixChunk</td></tr><tr><td><img src="assets/bubble-2-mini.png" alt="thumb" /></td><td><a href="SDL-Mixer-MixMusic.html">SDL::Mixer::MixMusic</a></td><td>- SDL Bindings for structure SDL_MixMusic</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Pango</strong></td></tr><tr><td><img src="assets/bubble-3-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-6-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-5-mini.png" alt="thumb" /></td><td><a href="SDL-SMPEG.html">SDL::SMPEG</a></td><td>- a SDL perl extension</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">MultiThread</strong></td></tr><tr><td><img src="assets/bubble-5-mini.png" alt="thumb" /></td><td><a href="SDL-MultiThread.html">SDL::MultiThread</a></td><td>- Bindings to the MultiThread category in SDL API</td></tr></table><table style="margin-left: 60px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-RWOps.html">SDL::RWOps</a></td><td>- SDL Bindings to SDL_RWOPs</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">GFX</strong></td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-BlitFunc.html">SDL::GFX::BlitFunc</a></td><td>- blitting functions</td></tr><tr><td><img src="assets/bubble-7-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-ImageFilter.html">SDL::GFX::ImageFilter</a></td><td>- image filtering functions</td></tr><tr><td><img src="assets/bubble-4-mini.png" alt="thumb" /></td><td><a href="SDL-GFX-Rotozoom.html">SDL::GFX::Rotozoom</a></td><td>- rotation and zooming functions for surfaces</td></tr></table><br /><table style="margin-left: 0px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">TTF</strong></td></tr><tr><td><img src="assets/bubble-6-mini.png" alt="thumb" /></td><td><a href="SDL-TTF.html">SDL::TTF</a></td><td>- True Type Font functions (libfreetype)</td></tr></table><table style="margin-left: 30px; margin-top: 5px"><tr><td colspan="3"><strong style="font-size: 14px">Structure</strong></td></tr><tr><td><img src="assets/bubble-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-2-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial.html">SDL::Tutorial</a></td><td>- introduction to Perl SDL</td></tr><tr><td><img src="assets/bubble-1-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-Animation.html">SDL::Tutorial::Animation</a></td><td></td></tr><tr><td><img src="assets/bubble-3-mini.png" alt="thumb" /></td><td><a href="SDL-Tutorial-LunarLander.html">SDL::Tutorial::LunarLander</a></td><td>- a small tutorial on Perl SDL</td></tr></table></div>