X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsdl.c;h=1bc222a958c49c227bfc9fa9a6a23bf853cd8a33;hb=6890bb7cb72e140f4b82f35217655ae6c5213fec;hp=95ef6eef6e9d97dcf3f724c45a1febc7af3d2022;hpb=68ce14c8ea8794fbf2c8af7c7119a514b024f7c4;p=rocksndiamonds.git diff --git a/src/libgame/sdl.c b/src/libgame/sdl.c index 95ef6eef..1bc222a9 100644 --- a/src/libgame/sdl.c +++ b/src/libgame/sdl.c @@ -71,7 +71,7 @@ inline void SDLInitVideoBuffer(DrawBuffer **backbuffer, DrawWindow **window, fullscreen_yoffset = 0; #ifdef FULLSCREEN_BUG - for (i=0; screen_xy[i][0] != -1; i++) + for (i = 0; screen_xy[i][0] != -1; i++) { if (video.width <= screen_xy[i][0] && video.height <= screen_xy[i][1]) { @@ -340,11 +340,11 @@ inline void SDLDrawLines(SDL_Surface *surface, struct XY *points, int i, x, y; int line_width = 4; - for (i=0; iformat->palette->ncolors; i++) + for (i = 0; i < zoom_src->format->palette->ncolors; i++) zoom_dst->format->palette->colors[i] = zoom_src->format->palette->colors[i]; zoom_dst->format->palette->ncolors = zoom_src->format->palette->ncolors; @@ -1277,19 +1276,26 @@ static SDL_Cursor *create_cursor(struct MouseCursorInfo *cursor_info) void SDLSetMouseCursor(struct MouseCursorInfo *cursor_info) { static struct MouseCursorInfo *last_cursor_info = NULL; + static struct MouseCursorInfo *last_cursor_info2 = NULL; static SDL_Cursor *cursor_default = NULL; static SDL_Cursor *cursor_current = NULL; + /* if invoked for the first time, store the SDL default cursor */ if (cursor_default == NULL) cursor_default = SDL_GetCursor(); + /* only create new cursor if cursor info (custom only) has changed */ if (cursor_info != NULL && cursor_info != last_cursor_info) { cursor_current = create_cursor(cursor_info); last_cursor_info = cursor_info; } - SDL_SetCursor(cursor_info ? cursor_current : cursor_default); + /* only set new cursor if cursor info (custom or NULL) has changed */ + if (cursor_info != last_cursor_info2) + SDL_SetCursor(cursor_info ? cursor_current : cursor_default); + + last_cursor_info2 = cursor_info; } @@ -1447,7 +1453,7 @@ void SDLInitJoysticks() } } - for (i=0; i