aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea>2008-03-27 03:18:32 +0000
committerthilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea>2008-03-27 03:18:32 +0000
commit031926b7d00a9483c666423faadd8b6fc33306a4 (patch)
treec6937185a2ffa725ddfb53058591109835f8af5f
parentdf550e7650e6647fc5addd6487195b0dc7f18d3e (diff)
downloadioquake3-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.c4
-rw-r--r--code/client/cl_scrn.c29
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;
}