Skip to main content

SDL_CreateCursor

Function 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_DestroyCursor().

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, SDL_CreateSystemCursor() is available, which provides several readily-available system cursors to pick from.

Parameter: data the color value for each pixel of the cursor. Parameter: mask the mask value for each pixel of the cursor. Parameter: w the width of the cursor. Parameter: h the height of the cursor. Parameter: hot_x the x-axis offset from the left of the cursor image to the mouse x position, in the range of 0 to w - 1. Parameter: hot_y the y-axis offset from the top of the cursor image to the mouse y position, in the range of 0 to h - 1. Returns: a new cursor with the specified parameters on success or NULL on failure; call SDL_GetError() for more information.

Thread Safety: This function should only be called on the main thread.

Available Since: This function is available since SDL 3.2.0.

See Also: SDL_CreateAnimatedCursor See Also: SDL_CreateColorCursor See Also: SDL_CreateSystemCursor See Also: SDL_DestroyCursor See Also: SDL_SetCursor