Mercurial > sdl-ios-xcode
diff src/SDL_compat.c @ 1967:01e29c3e9a29
In general, fill in pointers to structures, rather than return them.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sat, 05 Aug 2006 22:34:23 +0000 |
parents | a788656ca29a |
children | 5d3724f64f2b |
line wrap: on
line diff
--- a/src/SDL_compat.c Sat Aug 05 17:12:22 2006 +0000 +++ b/src/SDL_compat.c Sat Aug 05 22:34:23 2006 +0000 @@ -65,14 +65,15 @@ SDL_GetVideoInfo(void) { static SDL_VideoInfo info; + SDL_DisplayMode mode; /* Memory leak, compatibility code, who cares? */ - if (!info.vfmt && SDL_GetDesktopDisplayMode()) { + if (!info.vfmt && SDL_GetDesktopDisplayMode(&mode) == 0) { int bpp; Uint32 Rmask, Gmask, Bmask, Amask; - SDL_PixelFormatEnumToMasks(SDL_GetDesktopDisplayMode()->format, &bpp, - &Rmask, &Gmask, &Bmask, &Amask); + SDL_PixelFormatEnumToMasks(mode.format, &bpp, &Rmask, &Gmask, &Bmask, + &Amask); info.vfmt = SDL_AllocFormat(bpp, Rmask, Gmask, Bmask, Amask); } return &info; @@ -88,17 +89,20 @@ } if (!(flags & SDL_FULLSCREEN)) { - return SDL_BITSPERPIXEL(SDL_GetDesktopDisplayMode()->format); + SDL_DisplayMode mode; + SDL_GetDesktopDisplayMode(&mode); + return SDL_BITSPERPIXEL(mode.format); } for (i = 0; i < SDL_GetNumDisplayModes(); ++i) { - const SDL_DisplayMode *mode = SDL_GetDisplayMode(i); - if (!mode->w || !mode->h || (width == mode->w && height == mode->h)) { - if (!mode->format) { + SDL_DisplayMode mode; + SDL_GetDisplayMode(i, &mode); + if (!mode.w || !mode.h || (width == mode.w && height == mode.h)) { + if (!mode.format) { return bpp; } - if (SDL_BITSPERPIXEL(mode->format) >= (Uint32) bpp) { - actual_bpp = SDL_BITSPERPIXEL(mode->format); + if (SDL_BITSPERPIXEL(mode.format) >= (Uint32) bpp) { + actual_bpp = SDL_BITSPERPIXEL(mode.format); } } } @@ -123,15 +127,16 @@ nmodes = 0; modes = NULL; for (i = 0; i < SDL_GetNumDisplayModes(); ++i) { - const SDL_DisplayMode *mode = SDL_GetDisplayMode(i); - if (!mode->w || !mode->h) { + SDL_DisplayMode mode; + SDL_GetDisplayMode(i, &mode); + if (!mode.w || !mode.h) { return (SDL_Rect **) (-1); } - if (SDL_BITSPERPIXEL(mode->format) != format->BitsPerPixel) { + if (SDL_BITSPERPIXEL(mode.format) != format->BitsPerPixel) { continue; } - if (nmodes > 0 && modes[nmodes - 1]->w == mode->w - && modes[nmodes - 1]->h == mode->h) { + if (nmodes > 0 && modes[nmodes - 1]->w == mode.w + && modes[nmodes - 1]->h == mode.h) { continue; } @@ -145,8 +150,8 @@ } modes[nmodes]->x = 0; modes[nmodes]->y = 0; - modes[nmodes]->w = mode->w; - modes[nmodes]->h = mode->h; + modes[nmodes]->w = mode.w; + modes[nmodes]->h = mode.h; ++nmodes; } if (modes) { @@ -300,16 +305,17 @@ } } if (center) { - const SDL_DisplayMode *current = SDL_GetDesktopDisplayMode(); - *x = (current->w - w) / 2; - *y = (current->h - h) / 2; + SDL_DisplayMode mode; + SDL_GetDesktopDisplayMode(&mode); + *x = (mode.w - w) / 2; + *y = (mode.h - h) / 2; } } SDL_Surface * SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags) { - const SDL_DisplayMode *desktop_mode; + SDL_DisplayMode desktop_mode; SDL_DisplayMode mode; int window_x = SDL_WINDOWPOS_UNDEFINED; int window_y = SDL_WINDOWPOS_UNDEFINED; @@ -390,8 +396,8 @@ } /* Set up the desired display mode */ - desktop_mode = SDL_GetDesktopDisplayMode(); - desktop_format = desktop_mode->format; + SDL_GetDesktopDisplayMode(&desktop_mode); + desktop_format = desktop_mode.format; if (desktop_format && ((flags & SDL_ANYFORMAT) || (bpp == SDL_BITSPERPIXEL(desktop_format)))) { desired_format = desktop_format;