Updated docs
[sdlgit/SDL-Site.git] / pages / SDL-Cursor.html-inc
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>