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.

This commit is contained in:
Thilo Schulz 2008-03-27 03:18:32 +00:00
parent d79a5487bc
commit fe1e02e457
2 changed files with 17 additions and 16 deletions

View file

@ -778,10 +778,6 @@ void CL_MapLoading( void ) {
Q_strncpyz( cls.servername, "localhost", sizeof(cls.servername) ); Q_strncpyz( cls.servername, "localhost", sizeof(cls.servername) );
cls.state = CA_CHALLENGING; // so the connect screen is drawn cls.state = CA_CHALLENGING; // so the connect screen is drawn
Key_SetCatcher( 0 ); 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(); SCR_UpdateScreen();
clc.connectTime = -RETRANSMIT_TIMEOUT; clc.connectTime = -RETRANSMIT_TIMEOUT;
NET_StringToAdr( cls.servername, &clc.serverAddress); NET_StringToAdr( cls.servername, &clc.serverAddress);

View file

@ -523,20 +523,25 @@ void SCR_UpdateScreen( void ) {
} }
recursive = 1; recursive = 1;
// if running in stereo, we need to draw the frame twice /* If there is no VM, there are also no rendering commands issued. Stop the renderer in
if ( cls.glconfig.stereoEnabled ) { * that case. */
SCR_DrawScreenField( STEREO_LEFT ); if(uivm)
SCR_DrawScreenField( STEREO_RIGHT ); {
} else { // if running in stereo, we need to draw the frame twice
SCR_DrawScreenField( STEREO_CENTER ); if ( cls.glconfig.stereoEnabled ) {
} SCR_DrawScreenField( STEREO_LEFT );
SCR_DrawScreenField( STEREO_RIGHT );
} else {
SCR_DrawScreenField( STEREO_CENTER );
}
if ( com_speeds->integer ) { if ( com_speeds->integer ) {
re.EndFrame( &time_frontend, &time_backend ); re.EndFrame( &time_frontend, &time_backend );
} else { } else {
re.EndFrame( NULL, NULL ); re.EndFrame( NULL, NULL );
}
} }
recursive = 0; recursive = 0;
} }