Mercurial > sdl-ios-xcode
comparison src/video/quartz/SDL_QuartzVideo.m @ 852:2651b6b43840
Quartz fix:
ut2004 makes a 2D window for the splash screen, which sets the screen
surface's pixels field. Then we tear down that video mode and create a GL
context, and the Quartz target isn't resetting the pixels field to NULL.
When you just create a GL window, the structure is memset'd to zero the
first time through, so unless you hit ut2004's codepath, you won't see the
bug. :)
Without this patch, quitting a windowed ut2003/ut2004 game makes the OS dump a
warning about a bogus free() to stderr, but it doesn't actually crash. All we
need to do is explicitly initialize the current->pixels field.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Tue, 24 Feb 2004 06:53:22 +0000 |
parents | f003714db2f4 |
children | 9e84d106ec19 |
comparison
equal
deleted
inserted
replaced
851:2687d28166d2 | 852:2651b6b43840 |
---|---|
826 | 826 |
827 static SDL_Surface* QZ_SetVideoMode (_THIS, SDL_Surface *current, int width, | 827 static SDL_Surface* QZ_SetVideoMode (_THIS, SDL_Surface *current, int width, |
828 int height, int bpp, Uint32 flags) { | 828 int height, int bpp, Uint32 flags) { |
829 | 829 |
830 current->flags = 0; | 830 current->flags = 0; |
831 current->pixels = NULL; | |
831 | 832 |
832 /* Setup full screen video */ | 833 /* Setup full screen video */ |
833 if ( flags & SDL_FULLSCREEN ) { | 834 if ( flags & SDL_FULLSCREEN ) { |
834 current = QZ_SetVideoFullScreen (this, current, width, height, bpp, flags ); | 835 current = QZ_SetVideoFullScreen (this, current, width, height, bpp, flags ); |
835 if (current == NULL) | 836 if (current == NULL) |