X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=sdlgit%2FSDL-Site.git;a=blobdiff_plain;f=pages%2FSDL-Cursor.html-inc;h=a29b3e6a44637ad72986cc083096b86408fd346b;hp=289bf2ef22f8a7f0f70e5d15d539db2602df526e;hb=801213bdc2b379a428fdebad07e9d404cec99a06;hpb=411e0b6a19b323b88847fbffe2323afe98e9f8dc diff --git a/pages/SDL-Cursor.html-inc b/pages/SDL-Cursor.html-inc index 289bf2e..a29b3e6 100644 --- a/pages/SDL-Cursor.html-inc +++ b/pages/SDL-Cursor.html-inc @@ -18,7 +18,7 @@

NAME

Top

-

SDL::Cursor -- Mouse cursor structure

+

SDL::Cursor - Mouse cursor structure

CATEGORY

Top

@@ -34,7 +34,8 @@ $width, $height, $hotspot_left, - $hotspot_top ); + $hotspot_top + ); SDL::Mouse::set_cursor($cursor); @@ -43,9 +44,8 @@

DESCRIPTION

Top

-

the SDL::Cursor module handles mouse cursors, and provide the developer to -use custom made cursors. Note that the cursors can only be in black and -white.

+

The SDL::Cursor module handles mouse cursors, and allows the developer to use custom-made cursors. +Note that cursors can only be in black and white.

METHODS

Top

@@ -54,8 +54,13 @@ white.

new

-

Create a cursor using the specified data and mask (in MSB format). The cursor width must be a multiple of 8 bits.

-

The cursor is created in black and white according to the following:

+
 my $cursor = SDL::Cursor->new(
+     \@data, \@mask, $width, $height, $hotspot_left, $hotspot_top
+ );
+
+
+

Create a cursor using the specified data and mask (in MSB format). +The cursor is created in black and white according to the following:

 Data / Mask   Resulting pixel on screen
     0 / 1      White
     1 / 1      Black
@@ -63,17 +68,17 @@ white.

1 / 0 Inverted color if possible, black if not.
-

Cursors created with this function must be freed with SDL_FreeCursor.

-

If you want to have color cursor, then this function is not for you; instead, you must hide normal system cursor with SDL::Cursor-new> -and in your main loop, when you draw graphics, also draw a SDL::Surface at the location of the mouse cursor.

+

If you want to have color cursor, then this function is not for you. +Instead, you should hide the cursor with SDL::Mouse::show_cursor(SDL_DISABLE). +Then in your main loop, when you draw graphics, draw a SDL::Surface at the location of the mouse cursor.

Example:

 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 SDL::SurfaceSDL::Surface
+

The width of cursors work in groups of 8. +If the width is above 8, twice the amount of elements in @data and @mask 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:

+
 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->new(\@data, \@mask, 9, 9, 4, 4);
+
+
+

The hotspot is offset by 4 pixels because a crosshair clicks from the center instead of the top left.

AUTHOR

Top

-

David J. Goehrig, Tobias Leich

+

David J. Goehrig, Tobias Leich, Blaizer

SEE ALSO

Top