SDL Wiki
(This is the legacy documentation for stable SDL2, the current stable version; SDL3 is the current development version.)


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

Header File

Defined in SDL_mouse.h


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

Function Parameters

const Uint8 * data the color value for each pixel of the cursor.
const Uint8 * mask the mask value for each pixel of the cursor.
int w the width of the cursor.
int h the height of the cursor.
int hot_x the X-axis location of the upper left corner of the cursor relative to the actual mouse position.
int hot_y the Y-axis location of the upper left corner of the cursor relative to the actual mouse position.

Return Value

(SDL_Cursor *) Returns a new cursor with the specified parameters on success or NULL on failure; call SDL_GetError() for more information.


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:

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.


This function is available since SDL 2.0.0.

See Also

CategoryAPI, CategoryAPIFunction, CategoryMouse

[ edit | delete | history | feedback | raw ]

[ front page | index | search | recent changes | git repo | offline html ]

All wiki content is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
Wiki powered by ghwikipp.