DEADSOFTWARE

sdl2: keep surface of same size while window resize
authorDeaDDooMER <deaddoomer@deadsoftware.ru>
Wed, 1 Apr 2020 10:26:37 +0000 (14:26 +0400)
committerDeaDDooMER <deaddoomer@deadsoftware.ru>
Wed, 1 Apr 2020 10:26:37 +0000 (14:26 +0400)
src/sdl2/main.c

index 66b6680aefec37471739a81acd7bf3cd2ef250ae..81ecaa173cb0574bae6f6808724a8f2e322db8d2 100644 (file)
@@ -127,11 +127,13 @@ static int Y_resize_window (int w, int h, int fullscreen) {
   assert(h > 0);
   assert(window != NULL);
   if (surf != NULL) {
-    SDL_Surface *s = SDL_CreateRGBSurface(0, w, h, 8, 0, 0, 0, 0);
-    if (s != NULL) {
-      SDL_SetPaletteColors(s->format->palette, surf->format->palette->colors, 0, surf->format->palette->ncolors);
-      SDL_FreeSurface(surf);
-      surf = s;
+    if (surf->w != w || surf->h != h) {
+      SDL_Surface *s = SDL_CreateRGBSurface(0, w, h, 8, 0, 0, 0, 0);
+      if (s != NULL) {
+        SDL_SetPaletteColors(s->format->palette, surf->format->palette->colors, 0, surf->format->palette->ncolors);
+        SDL_FreeSurface(surf);
+        surf = s;
+      }
     }
   }
   SDL_SetWindowSize(window, w, h);