]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
hud_postprocessing: disable the postprocess shader when not in use.
authorRudolf Polzer <divVerent@gmail.com>
Wed, 3 Jan 2024 03:18:17 +0000 (22:18 -0500)
committerRudolf Polzer <divVerent@gmail.com>
Wed, 3 Jan 2024 03:18:17 +0000 (22:18 -0500)
Works best with upcoming r_skipblend.

qcsrc/client/view.qc

index a9496ea15310ba50332e9480692c4e30bacc2502..a84d21ce87080b86cc44a709252b21c81faee8ea 100644 (file)
@@ -1200,6 +1200,7 @@ void View_PostProcessing()
 {
        float e1 = (autocvar_hud_postprocessing_maxbluralpha != 0);
        float e2 = (autocvar_hud_powerup != 0);
+       bool want_postprocessing = false;
        if(autocvar_hud_postprocessing && (e1 || e2)) // TODO: Remove this code and re-do the postprocess handling in the engine, where it properly belongs.
        {
                // enable or disable rendering types if they are used or not
@@ -1217,6 +1218,7 @@ void View_PostProcessing()
                                old_blurradius = blurradius;
                                old_bluralpha = bluralpha;
                        }
+                       want_postprocessing = true;
                }
                else if(cvar_string("r_glsl_postprocess_uservec1") != "0 0 0 0") // reduce cvar_set spam as much as possible
                {
@@ -1243,18 +1245,24 @@ void View_PostProcessing()
                                cvar_set("r_glsl_postprocess_uservec2", strcat(ftos((sharpen_intensity / 5) * autocvar_hud_powerup), " ", ftos(-sharpen_intensity * autocvar_hud_powerup), " 0 0"));
                                old_sharpen_intensity = sharpen_intensity;
                        }
+                       want_postprocessing = true;
                }
                else if(cvar_string("r_glsl_postprocess_uservec2") != "0 0 0 0") // reduce cvar_set spam as much as possible
                {
                        cvar_set("r_glsl_postprocess_uservec2", "0 0 0 0");
                        old_sharpen_intensity = 0;
                }
-
+       }
+       if (want_postprocessing)
+       {
                if(cvar("r_glsl_postprocess") == 0)
                        cvar_set("r_glsl_postprocess", "2");
        }
-       else if(cvar("r_glsl_postprocess") == 2)
-               cvar_set("r_glsl_postprocess", "0");
+       else
+       {
+               if(cvar("r_glsl_postprocess") == 2)
+                       cvar_set("r_glsl_postprocess", "0");
+       }
 }
 
 void View_Lock()