|
|
|
@ -469,7 +469,7 @@ static int PollEvent()
|
|
|
|
|
case SDL_VIDEORESIZE: {
|
|
|
|
|
int w = max(ev.resize.w, 64);
|
|
|
|
|
int h = max(ev.resize.h, 64);
|
|
|
|
|
ChangeResInGame(w, h);
|
|
|
|
|
CreateMainSurface(w, h);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -627,14 +627,17 @@ void VideoDriver_SDL::MainLoop()
|
|
|
|
|
|
|
|
|
|
bool VideoDriver_SDL::ChangeResolution(int w, int h)
|
|
|
|
|
{
|
|
|
|
|
return CreateMainSurface(w, h);
|
|
|
|
|
if (_draw_threaded) _draw_mutex->BeginCritical();
|
|
|
|
|
bool ret = CreateMainSurface(w, h);
|
|
|
|
|
if (_draw_threaded) _draw_mutex->EndCritical();
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool VideoDriver_SDL::ToggleFullscreen(bool fullscreen)
|
|
|
|
|
{
|
|
|
|
|
_fullscreen = fullscreen;
|
|
|
|
|
GetVideoModes(); // get the list of available video modes
|
|
|
|
|
if (_num_resolutions == 0 || !this->ChangeResolution(_cur_resolution.width, _cur_resolution.height)) {
|
|
|
|
|
if (_num_resolutions == 0 || !CreateMainSurface(_cur_resolution.width, _cur_resolution.height)) {
|
|
|
|
|
/* switching resolution failed, put back full_screen to original status */
|
|
|
|
|
_fullscreen ^= true;
|
|
|
|
|
return false;
|
|
|
|
|