/* ================== SCR_UpdateScreen This is called every frame, and can also be called explicitly to flush text to the screen. ================== */ void SCR_UpdateScreen( void ) { static int recursive; if ( !scr_initialized ) { return; // not initialized yet } if ( ++recursive > 2 ) { Com_Error( ERR_FATAL, "SCR_UpdateScreen: recursively called" ); } 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 ( com_speeds->integer ) { re.EndFrame( &time_frontend, &time_backend ); } else { re.EndFrame( NULL, NULL ); } recursive = 0; }
/* ================== SCR_UpdateScreen This is called every frame, and can also be called explicitly to flush text to the screen. ================== */ void SCR_UpdateScreen( void ) { static int recursive; if ( !scr_initialized ) { return; // not initialized yet } if ( ++recursive > 2 ) { Com_Error( ERR_FATAL, "SCR_UpdateScreen: recursively called" ); } recursive = 1; // If there is no VM, there are also no rendering commands issued. Stop the renderer in // that case. if( uivm || com_dedicated->integer ) { // XXX int in_anaglyphMode = Cvar_VariableIntegerValue("r_anaglyphMode"); // if running in stereo, we need to draw the frame twice if ( cls.glconfig.stereoEnabled || in_anaglyphMode) { 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 ); } } recursive = 0; }
/** * @brief This is called every frame, and can also be called explicitly to flush * text to the screen. */ void SCR_UpdateScreen(void) { static int recursive = 0; if (!scr_initialized) { return; // not initialized yet } if (++recursive >= 2) { recursive = 0; // Gordon: i'm breaking this again, because we've removed most of our cases but still have one which will not fix easily return; //Com_Error( ERR_FATAL, "SCR_UpdateScreen: recursively called" ); } recursive = 1; // if running in stereo, we need to draw the frame twice #ifndef FEATURE_RENDERER_GLES if (cls.glconfig.stereoEnabled) { SCR_DrawScreenField(STEREO_LEFT); SCR_DrawScreenField(STEREO_RIGHT); } else #endif { SCR_DrawScreenField(STEREO_CENTER); } if (com_speeds->integer) { re.EndFrame(&time_frontend, &time_backend); } else { re.EndFrame(NULL, NULL); } recursive = 0; }
/* ================== SCR_UpdateScreen This is called every frame, and can also be called explicitly to flush text to the screen. ================== */ void SCR_UpdateScreen(void) { static int recursive = 0; if(!scr_initialized) { return; // not initialized yet } if(++recursive >= 2) { recursive = 0; // Gordon: i'm breaking this again, because we've removed most of our cases but still have one which will not fix easily return; // Com_Error( ERR_FATAL, "SCR_UpdateScreen: recursively called" ); } recursive = 1; // If there is no VM, there are also no rendering commands issued. Stop the renderer in // that case. if( uivm || com_dedicated->integer ) { // XXX extern convar_t* r_anaglyphMode; // 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 ); } } recursive = 0; }
/* ================== SCR_UpdateScreen This is called every frame, and can also be called explicitly to flush text to the screen. ================== */ void SCR_UpdateScreen( void ) { static int recursive; if ( !scr_initialized ) { return; // not initialized yet } // load the ref / ui / cgame if needed CL_StartHunkUsers(); if ( ++recursive > 2 ) { Com_Error( ERR_FATAL, "SCR_UpdateScreen: recursively called" ); } recursive = qtrue; // If there is no VM, there are also no rendering commands issued. Stop the renderer in // that case. if ( cls.uiStarted ) { // 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 ); } } recursive = 0; }
void SCR_UpdateScreen( void ) { static int recursive; if ( !scr_initialized ) { return; // not initialized yet } if ( ++recursive > 2 ) { Com_Error( ERR_FATAL, "SCR_UpdateScreen: recursively called" ); } recursive = 1; #ifdef _XBOX qboolean rendered = qfalse; if (ClientManager::splitScreenMode == qtrue) { // cls.state = ClientManager::ActiveClient().state; if (cls.state == CA_ACTIVE) { int lastClient = ClientManager::ActiveClientNum(); ClientManager::SetMainClient(0); ClientManager::ActivateClient(0); glcfgHeight = cgs.glconfig.vidHeight = 240;// glConfig.vidHeight = 240; ClientManager::SetMainClient(0); ClientManager::ActivateClient(0); SCR_DrawScreenField( STEREO_CENTER ); // Only draw the other screen if there are two clients if (ClientManager::NumClients() == 2) { glcfgY = 240; ClientManager::SetMainClient(1); ClientManager::ActivateClient(1); SCR_DrawScreenField( STEREO_CENTER ); } glcfgY = 0; glcfgHeight = cgs.glconfig.vidHeight = glConfig.vidHeight = 480; ClientManager::SetMainClient(lastClient); ClientManager::ActivateClient(lastClient); rendered = qtrue; } else rendered = qfalse; } if(rendered == qfalse) { #endif // 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 ); } #ifdef _XBOX } #endif if ( com_speeds->integer ) { re.EndFrame( &time_frontend, &time_backend ); } else { re.EndFrame( NULL, NULL ); } recursive = 0; }