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)