GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  PODS::SDL::CURSOR (3)

.ds Aq ’

NAME

SDL::Cursor - Mouse cursor structure

CONTENTS

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
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 PODS::SDL::CURSOR (3) 2016-04-05

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.