Provided by: libsdl-perl_2.548-3_amd64 bug

NAME

       SDL::Cursor - Mouse cursor structure

CATEGORY

       Core, Mouse, Structure

SYNOPSIS

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

        SDL::Mouse::set_cursor($cursor);

DESCRIPTION

       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

   new
        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
           0 / 0      Transparent
           1 / 0      Inverted color if possible, black if not.

       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::Video;
        use SDL::Mouse;
        use SDL::Cursor;

        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);

       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.

AUTHORS

       See "AUTHORS" in SDL.

SEE ALSO

       perl SDL::Mouse