SDL::Cursor -- Mouse cursor structure
Core, Mouse, Structure
my $cursor = SDL::Cursor->new( \@data, \@mask, $width, $height, $hotspot_left, $hotspot_top ); SDL::Mouse::set_cursor($cursor);
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.
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:
Data / Mask Resulting pixel on screen 0 / 1 White 1 / 1 Black 0 / 0 Transparent 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.
Example:
use SDL; use SDL::Cursor; use SDL::Mouse; use SDL::Video; SDL::init(SDL_INIT_VIDEO); SDL::Video::set_video_mode( 640, 480, 16, SDL_SWSURFACE); my @data = ( 0b00000000, 0b00111100, 0b01111110, 0b01111110, 0b01111110, 0b01111110, 0b00111100, 0b00000000 ); my @mask = ( 0b00111100, 0b01111110, 0b11100111, 0b11000011, 0b11000011, 0b11100111, 0b01111110, 0b00111100 ); my $cursor = SDL::Cursor->new( \@data, \@mask, 8, 8, 0, 0 ); sleep(1); SDL::Mouse::set_cursor($cursor); sleep(5);
David J. Goehrig, Tobias Leich