The renderer code actually listens to the video code failing again.

Also added an extra attempt to try 640*480 before giving up and reverting to console.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@2925 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2008-02-16 03:40:32 +00:00
parent be25425644
commit 333339782b
1 changed files with 15 additions and 4 deletions

View File

@ -1585,9 +1585,7 @@ qboolean R_ApplyRenderer (rendererstate_t *newr)
R_SetRenderer(newr->renderer);
R_ApplyRenderer_Load(newr);
return true;
return R_ApplyRenderer_Load(newr);
}
qboolean R_ApplyRenderer_Load (rendererstate_t *newr)
{
@ -2082,13 +2080,26 @@ TRACE(("dbg: R_RestartRenderer_f\n"));
failed = !R_ApplyRenderer(&newr);
}
if (failed)
{
Con_Printf(CON_NOTICE "Trying 640*480\n");
newr.width = 640;
newr.height = 480;
failed = !R_ApplyRenderer(&newr);
}
if (failed)
{
newr.renderer = QR_NONE;
if (R_ApplyRenderer(&newr))
{
TRACE(("dbg: R_RestartRenderer_f going to dedicated\n"));
Con_Printf(CON_ERROR "Video mode switch failed. Old mode wasn't supported either. Console forced.\nChange vid_width, vid_height, vid_bpp, vid_displayfrequency to a compatible mode, and then use the setrenderer command.\n");
Con_Printf(CON_ERROR "Video mode switch failed. Old mode wasn't supported either. Console forced.\n\nChange the following vars to something useable, and then use the setrenderer command.\n");
Con_Printf("%s: %s\n", vid_width.name, vid_width.string);
Con_Printf("%s: %s\n", vid_height.name, vid_height.string);
Con_Printf("%s: %s\n", vid_bpp.name, vid_bpp.string);
Con_Printf("%s: %s\n", vid_refreshrate.name, vid_refreshrate.string);
Con_Printf("%s: %s\n", vid_renderer.name, vid_renderer.string);
}
else
Sys_Error("Couldn't fall back to previous renderer\n");