// // R_RenderView // void R_RenderPlayerView(player_t *player) { R_SetupFrame(player); // Clear buffers. R_ClearClipSegs(); R_ClearDrawSegs(); if (automapactive) { // The head node is the last node output. R_RenderBSPNode(numnodes - 1); } else { // Clear buffers. R_ClearPlanes(); R_ClearSprites(); if (player->cheats & CF_NOCLIP) V_FillRect(0, viewwindowx, viewwindowy, viewwidth, viewheight, 0); // The head node is the last node output. R_RenderBSPNode(numnodes - 1); R_DrawPlanes(); R_DrawMasked(); } }
int HU_DrawDemoProgress(int force) { static unsigned int last_update = 0; static int prev_len = -1; int len, tics_count, diff; unsigned int tick, max_period; if (gamestate == GS_DEMOSCREEN || (!demoplayback && !democontinue) || !hudadd_demoprogressbar) return false; tics_count = ((doSkip && demo_skiptics > 0) ? MIN(demo_skiptics, demo_tics_count) : demo_tics_count) * demo_playerscount; len = MIN(SCREENWIDTH, (int)((int_64_t)SCREENWIDTH * demo_curr_tic / tics_count)); if (!force) { max_period = ((tics_count - demo_curr_tic > 35 * demo_playerscount) ? 500 : 15); // Unnecessary updates of progress bar // can slow down demo skipping and playback tick = SDL_GetTicks(); if (tick - last_update < max_period) return false; last_update = tick; // Do not update progress bar if difference is small diff = len - prev_len; if (diff == 0 || diff == 1) // because of static prev_len return false; } prev_len = len; V_FillRect(0, 0, SCREENHEIGHT - 4, len - 0, 4, 4); if (len > 4) V_FillRect(0, 2, SCREENHEIGHT - 3, len - 4, 2, 0); return true; }
// // R_RenderView // void R_RenderPlayerView (player_t* player) { R_SetupFrame (player); // Clear buffers. R_ClearClipSegs (); R_ClearDrawSegs (); R_ClearPlanes (); R_ClearSprites (); rendered_segs = rendered_visplanes = 0; if (V_GetMode() == VID_MODEGL) { #ifdef GL_DOOM // proff 11/99: clear buffers gld_InitDrawScene(); // proff 11/99: switch to perspective mode gld_StartDrawScene(); #endif } else { if (autodetect_hom) { // killough 2/10/98: add flashing red HOM indicators unsigned char color=(gametic % 20) < 9 ? 0xb0 : 0; V_FillRect(SCR_FRONT_L, viewwindowx, viewwindowy, viewwidth, viewheight, color); V_FillRect(SCR_FRONT_R, viewwindowx, viewwindowy, viewwidth, viewheight, color); R_DrawViewBorder(); } } // check for new console commands. #ifdef HAVE_NET NetUpdate (); #endif // The head node is the last node output. R_RenderBSPNode (numnodes-1); R_ResetColumnBuffer(); // Check for new console commands. #ifdef HAVE_NET NetUpdate (); #endif if (V_GetMode() != VID_MODEGL) R_DrawPlanes (); // Check for new console commands. #ifdef HAVE_NET NetUpdate (); #endif if (V_GetMode() != VID_MODEGL) { R_DrawMasked (); R_ResetColumnBuffer(); } // Check for new console commands. #ifdef HAVE_NET NetUpdate (); #endif if (V_GetMode() == VID_MODEGL) { #ifdef GL_DOOM // proff 11/99: draw the scene gld_DrawScene(player); // proff 11/99: finishing off gld_EndDrawScene(); #endif } if (rendering_stats) R_ShowStats(); R_RestoreInterpolations(); }