From: divverent Date: Thu, 1 Jul 2010 18:37:11 +0000 (+0000) Subject: new cvar r_draw2d to turn off all 2D drawing (except for console, r_speeds and showfps) X-Git-Tag: xonotic-v0.1.0preview~230^2~219 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=commitdiff_plain;h=9a6cc5c4aa4cfcc90d86050f91d684704698c872 new cvar r_draw2d to turn off all 2D drawing (except for console, r_speeds and showfps) git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@10259 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/cl_screen.c b/cl_screen.c index 632366d4..df182566 100644 --- a/cl_screen.c +++ b/cl_screen.c @@ -807,6 +807,7 @@ void R_TimeReport_EndFrame(void) lines++; y = vid_conheight.integer - sb_lines - lines * 8; i = j = 0; + r_draw2d_force = true; DrawQ_Fill(0, y, vid_conwidth.integer, lines * 8, 0, 0, 0, 0.5, 0); while (string[i]) { @@ -819,6 +820,7 @@ void R_TimeReport_EndFrame(void) i++; y += 8; } + r_draw2d_force = false; } } diff --git a/console.c b/console.c index 78f6c0c5..332c6800 100644 --- a/console.c +++ b/console.c @@ -1836,6 +1836,8 @@ void Con_DrawConsole (int lines) con_vislines = lines; + r_draw2d_force = true; + // draw the background alpha = cls.signon == SIGNONS ? scr_conalpha.value : 1.0f; // always full alpha when not in game if(alpha > 0) @@ -1919,6 +1921,8 @@ void Con_DrawConsole (int lines) // draw the input prompt, user text, and cursor if desired Con_DrawInput (); + + r_draw2d_force = false; } /* diff --git a/gl_draw.c b/gl_draw.c index 36fcac77..44aef376 100644 --- a/gl_draw.c +++ b/gl_draw.c @@ -983,10 +983,13 @@ void _DrawQ_Setup(void) GL_BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); } +qboolean r_draw2d_force = false; static void _DrawQ_ProcessDrawFlag(int flags) { _DrawQ_Setup(); CHECKGLERROR + if(!r_draw2d.integer && !r_draw2d_force) + return; if(flags == DRAWFLAG_ADDITIVE) GL_BlendFunc(GL_SRC_ALPHA, GL_ONE); else if(flags == DRAWFLAG_MODULATE) @@ -1004,6 +1007,8 @@ void DrawQ_Pic(float x, float y, cachepic_t *pic, float width, float height, flo float floats[36]; _DrawQ_ProcessDrawFlag(flags); + if(!r_draw2d.integer && !r_draw2d_force) + return; R_Mesh_ResetTextureState(); floats[12] = 0.0f;floats[13] = 0.0f; @@ -1059,6 +1064,8 @@ void DrawQ_RotPic(float x, float y, cachepic_t *pic, float width, float height, float cosar = cos(ar); _DrawQ_ProcessDrawFlag(flags); + if(!r_draw2d.integer && !r_draw2d_force) + return; R_Mesh_ResetTextureState(); if (pic) @@ -1108,6 +1115,8 @@ void DrawQ_Fill(float x, float y, float width, float height, float red, float gr float floats[36]; _DrawQ_ProcessDrawFlag(flags); + if(!r_draw2d.integer && !r_draw2d_force) + return; R_Mesh_ResetTextureState(); R_SetupShader_Generic(NULL, NULL, GL_MODULATE, 1); @@ -1431,6 +1440,8 @@ float DrawQ_String_Scale(float startx, float starty, const char *text, size_t ma maxlen = 1<<30; _DrawQ_ProcessDrawFlag(flags); + if(!r_draw2d.integer && !r_draw2d_force) + return startx + DrawQ_TextWidth_UntilWidth_TrackColors_Scale(text, &maxlen, w, h, sw, sh, NULL, ignorecolorcodes, fnt, 1000000000); R_Mesh_ResetTextureState(); if (!fontmap) @@ -1773,6 +1784,8 @@ void DrawQ_SuperPic(float x, float y, cachepic_t *pic, float width, float height float floats[36]; _DrawQ_ProcessDrawFlag(flags); + if(!r_draw2d.integer && !r_draw2d_force) + return; R_Mesh_ResetTextureState(); if (pic) @@ -1807,6 +1820,8 @@ void DrawQ_SuperPic(float x, float y, cachepic_t *pic, float width, float height void DrawQ_Mesh (drawqueuemesh_t *mesh, int flags) { _DrawQ_ProcessDrawFlag(flags); + if(!r_draw2d.integer && !r_draw2d_force) + return; R_Mesh_ResetTextureState(); R_SetupShader_Generic(mesh->texture, NULL, GL_MODULATE, 1); @@ -1820,6 +1835,8 @@ void DrawQ_LineLoop (drawqueuemesh_t *mesh, int flags) int num; _DrawQ_ProcessDrawFlag(flags); + if(!r_draw2d.integer && !r_draw2d_force) + return; GL_Color(1,1,1,1); CHECKGLERROR @@ -1838,6 +1855,8 @@ void DrawQ_LineLoop (drawqueuemesh_t *mesh, int flags) void DrawQ_Line (float width, float x1, float y1, float x2, float y2, float r, float g, float b, float alpha, int flags) { _DrawQ_ProcessDrawFlag(flags); + if(!r_draw2d.integer && !r_draw2d_force) + return; R_SetupShader_Generic(NULL, NULL, GL_MODULATE, 1); diff --git a/gl_rmain.c b/gl_rmain.c index 0234fdfb..1593e479 100644 --- a/gl_rmain.c +++ b/gl_rmain.c @@ -76,6 +76,7 @@ cvar_t r_showcollisionbrushes_polygonoffset = {0, "r_showcollisionbrushes_polygo cvar_t r_showdisabledepthtest = {0, "r_showdisabledepthtest", "0", "disables depth testing on r_show* cvars, allowing you to see what hidden geometry the graphics card is processing"}; cvar_t r_drawportals = {0, "r_drawportals", "0", "shows portals (separating polygons) in world interior in quake1 maps"}; cvar_t r_drawentities = {0, "r_drawentities","1", "draw entities (doors, players, projectiles, etc)"}; +cvar_t r_draw2d = {0, "r_draw2d","1", "draw 2D stuff (dangerous to turn off)"}; cvar_t r_drawworld = {0, "r_drawworld","1", "draw world (most static stuff)"}; cvar_t r_drawviewmodel = {0, "r_drawviewmodel","1", "draw your weapon model"}; cvar_t r_drawexteriormodel = {0, "r_drawexteriormodel","1", "draw your player model (e.g. in chase cam, reflections)"}; @@ -6379,6 +6380,7 @@ void GL_Main_Init(void) Cvar_RegisterVariable(&r_showdisabledepthtest); Cvar_RegisterVariable(&r_drawportals); Cvar_RegisterVariable(&r_drawentities); + Cvar_RegisterVariable(&r_draw2d); Cvar_RegisterVariable(&r_drawworld); Cvar_RegisterVariable(&r_cullentities_trace); Cvar_RegisterVariable(&r_cullentities_trace_samples); diff --git a/render.h b/render.h index 7cc1ae22..d81cc565 100644 --- a/render.h +++ b/render.h @@ -114,6 +114,8 @@ extern cvar_t r_showdisabledepthtest; // view origin // extern cvar_t r_drawentities; +extern cvar_t r_draw2d; +extern qboolean r_draw2d_force; extern cvar_t r_drawviewmodel; extern cvar_t r_drawworld; extern cvar_t r_speeds; diff --git a/sbar.c b/sbar.c index e4390b6b..8b722295 100644 --- a/sbar.c +++ b/sbar.c @@ -1203,6 +1203,7 @@ void Sbar_ShowFPS(void) } if (fpsstring[0]) { + r_draw2d_force = true; fps_x = vid_conwidth.integer - DrawQ_TextWidth(fpsstring, 0, fps_scalex, fps_scaley, true, FONT_INFOBAR); DrawQ_Fill(fps_x, fps_y, vid_conwidth.integer - fps_x, fps_scaley, 0, 0, 0, 0.5, 0); if (red) @@ -1210,6 +1211,7 @@ void Sbar_ShowFPS(void) else DrawQ_String(fps_x, fps_y, fpsstring, 0, fps_scalex, fps_scaley, 1, 1, 1, 1, 0, NULL, true, FONT_INFOBAR); fps_y += fps_scaley; + r_draw2d_force = false; } if (timedemostring1[0]) {