diff --git a/code/client/cl_main.c b/code/client/cl_main.c index ea9e0c93..211907e6 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 a24984be..b7ab5297 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; }