Okay I've got a quick question...
I have used this code to toggle the screen:
SDL_Surface *ToggleScreenMode(SDL_Surface *screen)
{//Begin ToggleScreenMode
Uint32 flags;
flags = screen->flags;
flags ^= SDL_FULLSCREEN;
printf("Toggle: %s",(screen->flags & SDL_FULLSCREEN)
? "Fullscreen -> Windowed\n"
: "Windowed -> Fullscreen\n");
screen = CreateScreen(screen->w, screen->h, screen->format->BitsPerPixel, flags);
return(screen);
}//End ToggleScreenMode
and it seems to work okay when used in the format:
screen = ToggleScreenMode(screen);
*note CreateScreen is a custom function that returns a SDL_Surface.
what I don't understand is why when the code is modified as such:
void ToggleScreenMode(SDL_Surface *screen)
{//Begin ToggleScreenMode
Uint32 flags;
flags = screen->flags;
flags ^= SDL_FULLSCREEN;
printf("Toggle: %s",(screen->flags & SDL_FULLSCREEN)
? "Fullscreen -> Windowed\n"
: "Windowed -> Fullscreen\n");
screen = CreateScreen(screen->w, screen->h, screen->format->BitsPerPixel, flags);
}//End ToggleScreenMode
and called like this:
ToggleScreenMode(screen);
it fails when trying to toggle back to windowed mode, after being toggled to fullscreen. According to my log it seems to try to toggle the fullscreen into fullscreen and then I get a segmentation error.
It's probably some stupid mistake I'm overlooking, but I just don't get why it's not working... it should shouldn't it? Any help would be greatly appreciated.
Edited by - Xorcist on February 6, 2002 12:36:52 AM
Edited by - Xorcist on February 7, 2002 4:14:21 AM