Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Thursday, June 13, 2019
 
 

SDL_CreateCursor (3)

Name

SDL_CreateCursor - Creates a new mouse cursor.

Synopsis

#include "SDL.h"

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

Description

SDL_CreateCursor(3)            SDL API Reference           SDL_CreateCursor(3)



NAME
       SDL_CreateCursor - Creates a new mouse cursor.

SYNOPSIS
       #include "SDL.h"

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

DESCRIPTION
       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.

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;
                 k[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);
       }

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | library/sdl      |
       +---------------+------------------+
       |Stability      | Volatile         |
       +---------------+------------------+
SEE ALSO
       SDL_FreeCursor, SDL_SetCursor, SDL_ShowCursor



NOTES
       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source        was        downloaded        from        https://www.lib-
       sdl.org/release/SDL-1.2.15.tar.gz

       Further information about this software can be found on the open source
       community website at https://www.libsdl.org/.



SDL                         Tue 11 Sep 2001, 23:01         SDL_CreateCursor(3)