Function sdl2_sys::SDL_CreateCursor

source ·
pub unsafe extern "C" fn SDL_CreateCursor(
    data: *const Uint8,
    mask: *const Uint8,
    w: c_int,
    h: c_int,
    hot_x: c_int,
    hot_y: c_int
) -> *mut SDL_Cursor
Expand description

Create a cursor using the specified bitmap data and mask (in MSB format).

mask has to be in MSB (Most Significant Bit) format.

The cursor width (w) must be a multiple of 8 bits.

The cursor is created in black and white according to the following:

  • data=0, mask=1: white
  • data=1, mask=1: black
  • data=0, mask=0: transparent
  • data=1, mask=0: inverted color if possible, black if not.

Cursors created with this function must be freed with SDL_FreeCursor().

If you want to have a color cursor, or create your cursor from an SDL_Surface, you should use SDL_CreateColorCursor(). Alternately, you can hide the cursor and draw your own as part of your game’s rendering, but it will be bound to the framerate.

Also, since SDL 2.0.0, SDL_CreateSystemCursor() is available, which provides twelve readily available system cursors to pick from.

\param data the color value for each pixel of the cursor \param mask the mask value for each pixel of the cursor \param w the width of the cursor \param h the height of the cursor \param hot_x the X-axis location of the upper left corner of the cursor relative to the actual mouse position \param hot_y the Y-axis location of the upper left corner of the cursor relative to the actual mouse position \returns a new cursor with the specified parameters on success or NULL on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.0.

\sa SDL_FreeCursor \sa SDL_SetCursor \sa SDL_ShowCursor