X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fsdl2%2Fmain.c;h=81ecaa173cb0574bae6f6808724a8f2e322db8d2;hb=35a8dd0de73e0b8f9175600785e2af74b6a03395;hp=dd5b8d43b2d16947a79291f66e1dc57d9fa9c38f;hpb=8191e06a991c4733abb2166b14934be4e3ea8ed7;p=flatwaifu.git diff --git a/src/sdl2/main.c b/src/sdl2/main.c index dd5b8d4..81ecaa1 100644 --- a/src/sdl2/main.c +++ b/src/sdl2/main.c @@ -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); @@ -158,6 +160,15 @@ int Y_set_videomode (int w, int h, int flags) { } } +void Y_get_videomode (int *w, int *h) { + if (window != NULL) { + SDL_GetWindowSize(window, w, h); + } else { + *w = 0; + *h = 0; + } +} + int Y_videomode_setted (void) { return window != NULL; } @@ -178,11 +189,10 @@ void Y_unset_videomode (void) { } } -int Y_set_fullscreen (int yes) { +void Y_set_fullscreen (int yes) { if (window != NULL) { SDL_SetWindowFullscreen(window, yes ? SDL_WINDOW_FULLSCREEN : 0); } - return yes; } int Y_get_fullscreen (void) {