Tao.Sdl SDK Documentation

Sdl.SDL_CreateCursor Method 

Creates a new mouse cursor.

[Visual Basic]
Public Shared Function SDL_CreateCursor( _
   ByRef data As Byte, _
   ByRef mask As Byte, _
   ByVal w As Integer, _
   ByVal h As Integer, _
   ByVal hot_x As Integer, _
   ByVal hot_y As Integer _
) As Integer
[C#]
public static int SDL_CreateCursor(
   ref byte data,
   ref byte mask,
   int w,
   int h,
   int hot_x,
   int hot_y
);

Parameters

data
mask
w
h
hot_x
hot_y

Return Value

Remarks

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.

Binds to C-function call in SDL_mouse.h:

            SDL_Cursor *SDL_CreateCursor(Uint8 *data, Uint8 *mask, int w, int h, int hot_x, int hot_y);
            

Example

            /* Stolen from the mailing list */
            * Creates a new mouse cursor from an XPM */
            /* XPM */
            static const char *arrow[] = {
            /* width height num_colors chars_per_pixel */
            "    32    32        3            1",
            /* colors */
            "X c #000000",
            ". c #ffffff",
            "  c None",
            /* pixels */
            "X                               ",
            "XX                              ",
            "X.X                             ",
            "X..X                            ",
            "X...X                           ",
            "X....X                          ",
            "X.....X                         ",
            "X......X                        ",
            "X.......X                       ",
            "X........X                      ",
            "X.....XXXXX                     ",
            "X..X..X                         ",
            "X.X X..X                        ",
            "XX  X..X                        ",
            "X    X..X                       ",
            "     X..X                       ",
            "      X..X                      ",
            "      X..X                      ",
            "       XX                       ",
            "                                ",
            "                                ",
            "                                ",
            "                                ",
            "                                ",
            "                                ",
            "                                ",
            "                                ",
            "                                ",
            "                                ",
            "                                ",
            "                                ",
            "                                ",
            "0,0"
            };
            static SDL_Cursor *init_system_cursor(const char *image[])
            {
            int i, row, col;
            Uint8 data[4*32];
            Uint8 mask[4*32];
            int hot_x, hot_y;
            i = -1;
            for ( row=0; row<32; ++row ) {
            for ( col=0; col<32; ++col ) {
            if ( col % 8 ) {
            data[i] <<= 1;
            mask[i] <<= 1;
            } else {
            ++i;
            data[i] = mask[i] = 0;
            }
            switch (image[4+row][col]) {
            case 'X':
            data[i] |= 0x01;
            mask[i] |= 0x01;
            break;
            case '.':
            mask[i] |= 0x01;
            break;
            case ' ':
            break;
            }
            }
            }
            sscanf(image[4+row], "%d,%d", &hot_x, &hot_y);
            return SDL_CreateCursor(data, mask, 32, 32, hot_x, hot_y);
            }
            

See Also

Sdl Class | Tao.Sdl Namespace | SDL_FreeCursor | SDL_SetCursor | SDL_ShowCursor