X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;ds=inline;f=cl_screen.c;h=26ddc00a12f7bbf9277196a0a66649da1e4aae95;hb=894bf4536f8815d72171394f89bf9a6c7f2fa56e;hp=545300425a314ba34041d9f526dd0578557cff45;hpb=7553655597e4e22766b9ed2394896a2a6905fc32;p=xonotic%2Fdarkplaces.git diff --git a/cl_screen.c b/cl_screen.c index 54530042..26ddc00a 100644 --- a/cl_screen.c +++ b/cl_screen.c @@ -613,9 +613,9 @@ static int SCR_InfobarHeight(void) if (cl.time > cl.oldtime) scr_infobartime_off -= cl.time - cl.oldtime; if(scr_infobartime_off > 0) - offset += 8; + offset += 1; if(cls.qw_downloadname[0]) - offset += 8; + offset += 1; downinfo = Curl_GetDownloadInfo(&nDownloads, &addinfo); if(downinfo) @@ -766,7 +766,7 @@ void R_TimeReport_BeginFrame(void) r_timereport_active = false; memset(&r_refdef.stats, 0, sizeof(r_refdef.stats)); - if (r_speeds.integer >= 2 && cls.signon == SIGNONS && cls.state == ca_connected) + if (r_speeds.integer >= 2) { r_timereport_active = true; r_timereport_start = r_timereport_current = Sys_DoubleTime(); @@ -791,16 +791,16 @@ void R_TimeReport_EndFrame(void) mleaf_t *viewleaf; string[0] = 0; - if (r_speeds.integer && cls.signon == SIGNONS && cls.state == ca_connected) + if (r_speeds.integer) { // put the location name in the r_speeds display as it greatly helps // when creating loc files loc = CL_Locs_FindNearest(cl.movement_origin); viewleaf = (r_refdef.scene.worldmodel && r_refdef.scene.worldmodel->brush.PointInLeaf) ? r_refdef.scene.worldmodel->brush.PointInLeaf(r_refdef.scene.worldmodel, r_refdef.view.origin) : NULL; dpsnprintf(string, sizeof(string), -"%6.0fus rendertime %3.0f%% viewscale %s%s\n" +"%6.0fus rendertime %3.0f%% viewscale %s%s %.3f cl.time\n" "%3i renders org:'%+8.2f %+8.2f %+8.2f' dir:'%+2.3f %+2.3f %+2.3f'\n" -"%5i viewleaf%5i cluster%2i area%4i brushes%4i surfaces(%7i triangles)\n" +"%5i viewleaf%5i cluster%3i area%4i brushes%4i surfaces(%7i triangles)\n" "%7i surfaces%7i triangles %5i entities (%7i surfaces%7i triangles)\n" "%5i leafs%5i portals%6i/%6i particles%6i/%6i decals %3i%% quality\n" "%7i lightmap updates (%7i pixels)%8iKB/%8iKB framedata\n" @@ -810,7 +810,7 @@ void R_TimeReport_EndFrame(void) "%6i draws%8i vertices%8i triangles bloompixels%8i copied%8i drawn\n" "updated%5i indexbuffers%8i bytes%5i vertexbuffers%8i bytes\n" "%s" -, r_refdef.lastdrawscreentime * 1000000.0, r_viewscale.value * sqrt(viewscalefpsadjusted) * 100.0f, loc ? "Location: " : "", loc ? loc->name : "" +, r_refdef.lastdrawscreentime * 1000000.0, r_viewscale.value * sqrt(viewscalefpsadjusted) * 100.0f, loc ? "Location: " : "", loc ? loc->name : "", cl.time , r_refdef.stats.renders, r_refdef.view.origin[0], r_refdef.view.origin[1], r_refdef.view.origin[2], r_refdef.view.forward[0], r_refdef.view.forward[1], r_refdef.view.forward[2] , viewleaf ? (int)(viewleaf - r_refdef.scene.worldmodel->brush.data_leafs) : -1, viewleaf ? viewleaf->clusterindex : -1, viewleaf ? viewleaf->areaindex : -1, viewleaf ? viewleaf->numleafbrushes : 0, viewleaf ? viewleaf->numleafsurfaces : 0, viewleaf ? R_CountLeafTriangles(r_refdef.scene.worldmodel, viewleaf) : 0 , r_refdef.stats.world_surfaces, r_refdef.stats.world_triangles, r_refdef.stats.entities, r_refdef.stats.entities_surfaces, r_refdef.stats.entities_triangles @@ -966,6 +966,10 @@ void CL_Screen_Init(void) Cvar_RegisterVariable(&vid_touchscreen_outlinealpha); Cvar_RegisterVariable(&vid_touchscreen_overlayalpha); + // if we want no console, turn it off here too + if (COM_CheckParm ("-noconsole")) + Cvar_SetQuick(&scr_conforcewhiledisconnected, "0"); + Cmd_AddCommand ("sizeup",SCR_SizeUp_f, "increase view size (increases viewsize cvar)"); Cmd_AddCommand ("sizedown",SCR_SizeDown_f, "decrease view size (decreases viewsize cvar)"); Cmd_AddCommand ("screenshot",SCR_ScreenShot_f, "takes a screenshot of the next rendered frame"); @@ -1608,17 +1612,16 @@ static void SCR_DrawTouchscreenOverlay(void) } } -extern void R_UpdateFogColor(void); +extern void R_UpdateFog(void); void R_ClearScreen(qboolean fogcolor) { float clearcolor[4]; // clear to black Vector4Clear(clearcolor); - if (fogcolor) + if (fogcolor && r_fog_clear.integer) { - R_UpdateFogColor(); - if (r_fog_clear.integer) - VectorCopy(r_refdef.fogcolor, clearcolor); + R_UpdateFog(); + VectorCopy(r_refdef.fogcolor, clearcolor); } // clear depth is 1.0 // LordHavoc: we use a stencil centered around 128 instead of 0, @@ -1791,7 +1794,6 @@ void SCR_DrawScreen (void) SCR_DrawPause (); if (!r_letterbox.value) Sbar_Draw(); - Sbar_ShowFPS(); SHOWLMP_drawall(); SCR_CheckDrawCenterString(); } @@ -1811,11 +1813,9 @@ void SCR_DrawScreen (void) if (r_timereport_active) R_TimeReport("2d"); - if (cls.signon == SIGNONS) - { - R_TimeReport_EndFrame(); - R_TimeReport_BeginFrame(); - } + R_TimeReport_EndFrame(); + R_TimeReport_BeginFrame(); + Sbar_ShowFPS(); DrawQ_Finish(); @@ -2009,7 +2009,7 @@ static void SCR_DrawLoadingStack(void) sscanf(scr_loadingscreen_barcolor.string, "%f %f %f", &colors[12], &colors[13], &colors[14]); colors[15] = 1; R_Mesh_PrepareVertices_Generic_Arrays(4, verts, colors, NULL); - R_SetupShader_Generic(NULL, NULL, GL_MODULATE, 1); + R_SetupShader_Generic(NULL, NULL, GL_MODULATE, 1, true, true); R_Mesh_Draw(0, 4, 0, 2, polygonelement3i, NULL, 0, polygonelement3s, NULL, 0); // make sure everything is cleared, including the progress indicator @@ -2042,7 +2042,7 @@ static void SCR_DrawLoadingScreen_SharedSetup (qboolean clear) R_Mesh_Start(); R_EntityMatrix(&identitymatrix); // draw the loading plaque - loadingscreenpic = Draw_CachePic (loadingscreenpic_number ? va("gfx/loading%d", loadingscreenpic_number+1) : "gfx/loading"); + loadingscreenpic = Draw_CachePic_Flags (loadingscreenpic_number ? va("gfx/loading%d", loadingscreenpic_number+1) : "gfx/loading", loadingscreenpic_number ? CACHEPICFLAG_NOTPERSISTENT : 0); w = loadingscreenpic->width; h = loadingscreenpic->height; @@ -2108,11 +2108,11 @@ static void SCR_DrawLoadingScreen (qboolean clear) if(loadingscreentexture) { R_Mesh_PrepareVertices_Generic_Arrays(4, loadingscreentexture_vertex3f, NULL, loadingscreentexture_texcoord2f); - R_SetupShader_Generic(loadingscreentexture, NULL, GL_MODULATE, 1); + R_SetupShader_Generic(loadingscreentexture, NULL, GL_MODULATE, 1, true, true); R_Mesh_Draw(0, 4, 0, 2, polygonelement3i, NULL, 0, polygonelement3s, NULL, 0); } R_Mesh_PrepareVertices_Generic_Arrays(4, loadingscreenpic_vertex3f, NULL, loadingscreenpic_texcoord2f); - R_SetupShader_Generic(loadingscreenpic->tex, NULL, GL_MODULATE, 1); + R_SetupShader_Generic(Draw_GetPicTexture(loadingscreenpic), NULL, GL_MODULATE, 1, true, true); R_Mesh_Draw(0, 4, 0, 2, polygonelement3i, NULL, 0, polygonelement3s, NULL, 0); SCR_DrawLoadingStack(); } @@ -2154,6 +2154,10 @@ void SCR_UpdateLoadingScreen (qboolean clear) } loadingscreencleared = clear; +#ifdef USE_GLES2 + SCR_DrawLoadingScreen_SharedSetup(clear); + SCR_DrawLoadingScreen(clear); +#else if (qglDrawBuffer) qglDrawBuffer(GL_BACK); SCR_DrawLoadingScreen_SharedSetup(clear); @@ -2170,6 +2174,7 @@ void SCR_UpdateLoadingScreen (qboolean clear) qglDrawBuffer(GL_BACK); SCR_DrawLoadingScreen(clear); } +#endif SCR_DrawLoadingScreen_SharedFinish(clear); // this goes into the event loop, and should prevent unresponsive cursor on vista @@ -2280,6 +2285,7 @@ void CL_UpdateScreen(void) SCR_SetUpToDrawConsole(); +#ifndef USE_GLES2 if (qglDrawBuffer) { CHECKGLERROR @@ -2294,6 +2300,7 @@ void CL_UpdateScreen(void) qglDisable(GL_DITHER);CHECKGLERROR } } +#endif R_Viewport_InitOrtho(&viewport, &identitymatrix, 0, 0, vid.width, vid.height, 0, 0, vid_conwidth.integer, vid_conheight.integer, -10, 100, NULL); R_Mesh_ResetRenderTargets(); @@ -2308,6 +2315,7 @@ void CL_UpdateScreen(void) f = pow((float)cl_updatescreen_quality, cl_minfps_qualitypower.value) * cl_minfps_qualityscale.value; r_refdef.view.quality = bound(cl_minfps_qualitymin.value, f, cl_minfps_qualitymax.value); +#ifndef USE_GLES2 if (qglPolygonStipple) { if(scr_stipple.integer) @@ -2334,10 +2342,12 @@ void CL_UpdateScreen(void) qglDisable(GL_POLYGON_STIPPLE);CHECKGLERROR } } +#endif if (r_viewscale_fpsscaling.integer) GL_Finish(); drawscreenstart = Sys_DoubleTime(); +#ifndef USE_GLES2 if (R_Stereo_Active()) { r_stereo_side = 0; @@ -2369,6 +2379,7 @@ void CL_UpdateScreen(void) SCR_DrawScreen(); } else +#endif SCR_DrawScreen(); if (r_viewscale_fpsscaling.integer) GL_Finish();