Reduce cvar_set spam as much as possible for the blur and sharpen postprocessing...
[voretournament/voretournament.git] / data / qcsrc / client / View.qc
index 73aaf13..3e21c77 100644 (file)
@@ -256,6 +256,7 @@ float artwork_fade;
 float pickup_crosshair_time, pickup_crosshair_size;\r
 float myhealth, myhealth_prev, myhealth_flash;\r
 float contentavgalpha, liquidalpha_prev;\r
+float old_blurradius, old_bluralpha, old_sharpen_intensity;\r
 float stomachsplash_alpha, stomachsplash_remove_at_respawn;\r
 float volume_modify_1, volume_modify_2, volume_modify_default_1, volume_modify_default_2;\r
 float volume_modify_changed_1, volume_modify_changed_2;\r
@@ -563,7 +564,7 @@ void CSQC_UpdateView(float w, float h)
 \r
                if(cvar("hud_postprocessing"))\r
                {\r
-                       if(cvar("hud_contents_liquid_blur"))\r
+                       if(cvar("hud_contents_liquid_blur") && contentavgalpha)\r
                        {\r
                                // when inside the stomach, we use different blur settings than when we're inside other fluids\r
                                content_blurpostprocess_x = 1;\r
@@ -649,7 +650,7 @@ void CSQC_UpdateView(float w, float h)
 \r
                if(cvar("hud_postprocessing"))\r
                {\r
-                       if(cvar("hud_damage_blur"))\r
+                       if(cvar("hud_damage_blur") && myhealth_flash_temp)\r
                        {\r
                                damage_blurpostprocess_x = 1;\r
                                damage_blurpostprocess_y = bound(0, myhealth_flash_temp, 1) * cvar("hud_damage_blur");\r
@@ -699,10 +700,15 @@ void CSQC_UpdateView(float w, float h)
                {\r
                        float blurradius = bound(0, damage_blurpostprocess_y + content_blurpostprocess_y, cvar("hud_postprocessing_maxblurradius"));\r
                        float bluralpha = bound(0, damage_blurpostprocess_z + content_blurpostprocess_z, cvar("hud_postprocessing_maxbluralpha"));\r
-                       cvar_set("r_glsl_postprocess_uservec1", strcat(ftos(blurradius), " ", ftos(bluralpha), " 0 0"));\r
-                       cvar_set("r_glsl_postprocess_uservec1_enable", "1");\r
+                       if(blurradius != old_blurradius || bluralpha != old_bluralpha) // reduce cvar_set spam as much as possible\r
+                       {\r
+                               cvar_set("r_glsl_postprocess_uservec1", strcat(ftos(blurradius), " ", ftos(bluralpha), " 0 0"));\r
+                               cvar_set("r_glsl_postprocess_uservec1_enable", "1");\r
+                               old_blurradius = blurradius;\r
+                               old_bluralpha = bluralpha;\r
+                       }\r
                }\r
-               else\r
+               else if(cvar("r_glsl_postprocess_uservec1_enable")) // reduce cvar_set spam as much as possible\r
                {\r
                        cvar_set("r_glsl_postprocess_uservec1", "0 0 0 0");\r
                        cvar_set("r_glsl_postprocess_uservec1_enable", "0");\r
@@ -719,10 +725,14 @@ void CSQC_UpdateView(float w, float h)
 \r
                        if(sharpen_intensity > 0)\r
                        {\r
-                               cvar_set("r_glsl_postprocess_uservec2", strcat("0 ", ftos(-sharpen_intensity * cvar("hud_powerup")), " 0 0"));\r
-                               cvar_set("r_glsl_postprocess_uservec2_enable", "1");\r
+                               if(sharpen_intensity != old_sharpen_intensity) // reduce cvar_set spam as much as possible\r
+                               {\r
+                                       cvar_set("r_glsl_postprocess_uservec2", strcat("0 ", ftos(-sharpen_intensity * cvar("hud_powerup")), " 0 0"));\r
+                                       cvar_set("r_glsl_postprocess_uservec2_enable", "1");\r
+                                       old_sharpen_intensity = sharpen_intensity;\r
+                               }\r
                        }\r
-                       else\r
+                       else if(cvar("r_glsl_postprocess_uservec2_enable")) // reduce cvar_set spam as much as possible\r
                        {\r
                                cvar_set("r_glsl_postprocess_uservec2", "0 0 0 0");\r
                                cvar_set("r_glsl_postprocess_uservec2_enable", "0");\r