From 68efbd15fda57a6c140dab797e7d1c0fdf19bba4 Mon Sep 17 00:00:00 2001 From: MirceaKitsune Date: Tue, 1 Mar 2011 15:56:41 +0200 Subject: [PATCH] Reduce cvar_set spam as much as possible for the blur and sharpen postprocessing effects --- data/qcsrc/client/View.qc | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/data/qcsrc/client/View.qc b/data/qcsrc/client/View.qc index 73aaf13a..3e21c77e 100644 --- a/data/qcsrc/client/View.qc +++ b/data/qcsrc/client/View.qc @@ -256,6 +256,7 @@ float artwork_fade; float pickup_crosshair_time, pickup_crosshair_size; float myhealth, myhealth_prev, myhealth_flash; float contentavgalpha, liquidalpha_prev; +float old_blurradius, old_bluralpha, old_sharpen_intensity; float stomachsplash_alpha, stomachsplash_remove_at_respawn; float volume_modify_1, volume_modify_2, volume_modify_default_1, volume_modify_default_2; float volume_modify_changed_1, volume_modify_changed_2; @@ -563,7 +564,7 @@ void CSQC_UpdateView(float w, float h) if(cvar("hud_postprocessing")) { - if(cvar("hud_contents_liquid_blur")) + if(cvar("hud_contents_liquid_blur") && contentavgalpha) { // when inside the stomach, we use different blur settings than when we're inside other fluids content_blurpostprocess_x = 1; @@ -649,7 +650,7 @@ void CSQC_UpdateView(float w, float h) if(cvar("hud_postprocessing")) { - if(cvar("hud_damage_blur")) + if(cvar("hud_damage_blur") && myhealth_flash_temp) { damage_blurpostprocess_x = 1; damage_blurpostprocess_y = bound(0, myhealth_flash_temp, 1) * cvar("hud_damage_blur"); @@ -699,10 +700,15 @@ void CSQC_UpdateView(float w, float h) { float blurradius = bound(0, damage_blurpostprocess_y + content_blurpostprocess_y, cvar("hud_postprocessing_maxblurradius")); float bluralpha = bound(0, damage_blurpostprocess_z + content_blurpostprocess_z, cvar("hud_postprocessing_maxbluralpha")); - cvar_set("r_glsl_postprocess_uservec1", strcat(ftos(blurradius), " ", ftos(bluralpha), " 0 0")); - cvar_set("r_glsl_postprocess_uservec1_enable", "1"); + if(blurradius != old_blurradius || bluralpha != old_bluralpha) // reduce cvar_set spam as much as possible + { + cvar_set("r_glsl_postprocess_uservec1", strcat(ftos(blurradius), " ", ftos(bluralpha), " 0 0")); + cvar_set("r_glsl_postprocess_uservec1_enable", "1"); + old_blurradius = blurradius; + old_bluralpha = bluralpha; + } } - else + else if(cvar("r_glsl_postprocess_uservec1_enable")) // reduce cvar_set spam as much as possible { cvar_set("r_glsl_postprocess_uservec1", "0 0 0 0"); cvar_set("r_glsl_postprocess_uservec1_enable", "0"); @@ -719,10 +725,14 @@ void CSQC_UpdateView(float w, float h) if(sharpen_intensity > 0) { - cvar_set("r_glsl_postprocess_uservec2", strcat("0 ", ftos(-sharpen_intensity * cvar("hud_powerup")), " 0 0")); - cvar_set("r_glsl_postprocess_uservec2_enable", "1"); + if(sharpen_intensity != old_sharpen_intensity) // reduce cvar_set spam as much as possible + { + cvar_set("r_glsl_postprocess_uservec2", strcat("0 ", ftos(-sharpen_intensity * cvar("hud_powerup")), " 0 0")); + cvar_set("r_glsl_postprocess_uservec2_enable", "1"); + old_sharpen_intensity = sharpen_intensity; + } } - else + else if(cvar("r_glsl_postprocess_uservec2_enable")) // reduce cvar_set spam as much as possible { cvar_set("r_glsl_postprocess_uservec2", "0 0 0 0"); cvar_set("r_glsl_postprocess_uservec2_enable", "0"); -- 2.39.2