X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pages%2FSDL-Cursor.html-inc;h=a29b3e6a44637ad72986cc083096b86408fd346b;hb=269d57b686ede25008bbab8589d7ec4d507b7b95;hp=9f2914dac222ce6d61004e37051fa223561336ed;hpb=2f2891efad38394bc8e2d42db71f954a2e3a44c4;p=sdlgit%2FSDL-Site.git diff --git a/pages/SDL-Cursor.html-inc b/pages/SDL-Cursor.html-inc index 9f2914d..a29b3e6 100644 --- a/pages/SDL-Cursor.html-inc +++ b/pages/SDL-Cursor.html-inc @@ -18,7 +18,7 @@
SDL::Cursor -- Mouse cursor structure
+SDL::Cursor - Mouse cursor structure
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.
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.
David J. Goehrig, Tobias Leich
+David J. Goehrig, Tobias Leich, Blaizer
perl SDL::Mouse
+