diff options
author | thilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2008-03-27 03:18:32 +0000 |
---|---|---|
committer | thilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2008-03-27 03:18:32 +0000 |
commit | 031926b7d00a9483c666423faadd8b6fc33306a4 (patch) | |
tree | c6937185a2ffa725ddfb53058591109835f8af5f | |
parent | df550e7650e6647fc5addd6487195b0dc7f18d3e (diff) | |
download | ioquake3-aero-031926b7d00a9483c666423faadd8b6fc33306a4.tar.gz ioquake3-aero-031926b7d00a9483c666423faadd8b6fc33306a4.zip |
A more clean solution to this bug. Stop the renderer when the UI VM is not running, as no commands get issued in that case anyways.
git-svn-id: svn://svn.icculus.org/quake3/trunk@1285 edf5b092-35ff-0310-97b2-ce42778d08ea
-rw-r--r-- | code/client/cl_main.c | 4 | ||||
-rw-r--r-- | code/client/cl_scrn.c | 29 |
2 files changed, 17 insertions, 16 deletions
diff --git a/code/client/cl_main.c b/code/client/cl_main.c index ea9e0c9..211907e 100644 --- a/code/client/cl_main.c +++ b/code/client/cl_main.c @@ -778,10 +778,6 @@ void CL_MapLoading( void ) { Q_strncpyz( cls.servername, "localhost", sizeof(cls.servername) ); cls.state = CA_CHALLENGING; // so the connect screen is drawn Key_SetCatcher( 0 ); - /* Execute next line twice, so that the connect image gets written into both, front- and - * back buffer. This is necessary to prevent a flashing screen on map startup, as the UI gets - * killed for a short time and cannot update the screen. */ - SCR_UpdateScreen(); SCR_UpdateScreen(); clc.connectTime = -RETRANSMIT_TIMEOUT; NET_StringToAdr( cls.servername, &clc.serverAddress); diff --git a/code/client/cl_scrn.c b/code/client/cl_scrn.c index a24984b..b7ab529 100644 --- a/code/client/cl_scrn.c +++ b/code/client/cl_scrn.c @@ -523,20 +523,25 @@ void SCR_UpdateScreen( void ) { } recursive = 1; - // if running in stereo, we need to draw the frame twice - if ( cls.glconfig.stereoEnabled ) { - SCR_DrawScreenField( STEREO_LEFT ); - SCR_DrawScreenField( STEREO_RIGHT ); - } else { - SCR_DrawScreenField( STEREO_CENTER ); - } + /* If there is no VM, there are also no rendering commands issued. Stop the renderer in + * that case. */ + if(uivm) + { + // if running in stereo, we need to draw the frame twice + if ( cls.glconfig.stereoEnabled ) { + SCR_DrawScreenField( STEREO_LEFT ); + SCR_DrawScreenField( STEREO_RIGHT ); + } else { + SCR_DrawScreenField( STEREO_CENTER ); + } - if ( com_speeds->integer ) { - re.EndFrame( &time_frontend, &time_backend ); - } else { - re.EndFrame( NULL, NULL ); + if ( com_speeds->integer ) { + re.EndFrame( &time_frontend, &time_backend ); + } else { + re.EndFrame( NULL, NULL ); + } } - + recursive = 0; } |