Mercurial > sdl-ios-xcode
changeset 853:dddfc37e1f65
Don't allow video modes larger than the maximum size
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 24 Feb 2004 07:42:19 +0000 |
parents | 2651b6b43840 |
children | 59a93320f326 |
files | src/video/SDL_video.c |
diffstat | 1 files changed, 17 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/video/SDL_video.c Tue Feb 24 06:53:22 2004 +0000 +++ b/src/video/SDL_video.c Tue Feb 24 07:42:19 2004 +0000 @@ -359,7 +359,14 @@ { 0, 32, 16, 15, 24, 8, 0, 0 } }; -int SDL_VideoModeOK (int width, int height, int bpp, Uint32 flags) + +#ifdef macintosh /* MPW optimization bug? */ +#define NEGATIVE_ONE 0xFFFFFFFF +#else +#define NEGATIVE_ONE -1 +#endif + +int SDL_VideoModeOK (int width, int height, int bpp, Uint32 flags) { int table, b, i; int supported; @@ -387,15 +394,18 @@ /* No sizes supported at this bit-depth */ continue; } else -#ifdef macintosh /* MPW optimization bug? */ - if ( (sizes == (SDL_Rect **)0xFFFFFFFF) || -#else - if ( (sizes == (SDL_Rect **)-1) || -#endif - current_video->handles_any_size ) { + if (sizes == (SDL_Rect **)NEGATIVE_ONE) { /* Any size supported at this bit-depth */ supported = 1; continue; + } else if (current_video->handles_any_size) { + /* Driver can center a smaller surface to simulate fullscreen */ + for ( i=0; sizes[i]; ++i ) { + if ((sizes[i]->w >= width) && (sizes[i]->h >= height)) { + supported = 1; /* this mode can fit the centered window. */ + break; + } + } } else for ( i=0; sizes[i]; ++i ) { if ((sizes[i]->w == width) && (sizes[i]->h == height)) {