]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
reworked cvar checks in VID_UpdateGamma to simply set gamma_forcenextframe if they...
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 2 Mar 2007 22:23:08 +0000 (22:23 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 2 Mar 2007 22:23:08 +0000 (22:23 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@6932 d7cf8633-e32d-0410-b094-e92efae38249

vid_shared.c

index 40730d2ac65d43a89eb08651d6d25dc6e591c7a3..d1ee155e21c6e26aa54833e492828c2aac0d3217 100644 (file)
@@ -757,50 +757,54 @@ void Force_CenterView_f (void)
 static int gamma_forcenextframe = false;
 static float cachegamma, cachebrightness, cachecontrast, cacheblack[3], cachegrey[3], cachewhite[3];
 static int cachecolorenable, cachehwgamma;
-#define BOUNDCVAR(cvar, m1, m2) c = &(cvar);f = bound(m1, c->value, m2);if (c->value != f) Cvar_SetValueQuick(c, f);
 void VID_UpdateGamma(qboolean force, int rampsize)
 {
        cvar_t *c;
        float f;
+       int wantgamma;
 
        // LordHavoc: don't mess with gamma tables if running dedicated
        if (cls.state == ca_dedicated)
                return;
 
-       if (!force
-        && !gamma_forcenextframe
-        && !v_psycho.integer
-        && cachehwgamma == (vid_activewindow ? v_hwgamma.integer : 0)
-        && v_gamma.value == cachegamma
-        && v_contrast.value == cachecontrast
-        && v_brightness.value == cachebrightness
-        && cachecolorenable == v_color_enable.integer
-        && cacheblack[0] == v_color_black_r.value
-        && cacheblack[1] == v_color_black_g.value
-        && cacheblack[2] == v_color_black_b.value
-        && cachegrey[0] == v_color_grey_r.value
-        && cachegrey[1] == v_color_grey_g.value
-        && cachegrey[2] == v_color_grey_b.value
-        && cachewhite[0] == v_color_white_r.value
-        && cachewhite[1] == v_color_white_g.value
-        && cachewhite[2] == v_color_white_b.value)
+       wantgamma = (vid_activewindow ? v_hwgamma.integer : 0);
+#define BOUNDCVAR(cvar, m1, m2) c = &(cvar);f = bound(m1, c->value, m2);if (c->value != f) Cvar_SetValueQuick(c, f);
+       BOUNDCVAR(v_gamma, 0.1, 5);
+       BOUNDCVAR(v_contrast, 1, 5);
+       BOUNDCVAR(v_brightness, 0, 0.8);
+       BOUNDCVAR(v_color_black_r, 0, 0.8);
+       BOUNDCVAR(v_color_black_g, 0, 0.8);
+       BOUNDCVAR(v_color_black_b, 0, 0.8);
+       BOUNDCVAR(v_color_grey_r, 0, 0.95);
+       BOUNDCVAR(v_color_grey_g, 0, 0.95);
+       BOUNDCVAR(v_color_grey_b, 0, 0.95);
+       BOUNDCVAR(v_color_white_r, 1, 5);
+       BOUNDCVAR(v_color_white_g, 1, 5);
+       BOUNDCVAR(v_color_white_b, 1, 5);
+#undef BOUNDCVAR
+
+       if (force || v_psycho.integer)
+               gamma_forcenextframe = true;
+#define GAMMACHECK(cache, value) if (cache != (value)) gamma_forcenextframe = true;cache = (value)
+       GAMMACHECK(cachehwgamma    , wantgamma);
+       GAMMACHECK(cachegamma      , v_gamma.value);
+       GAMMACHECK(cachecontrast   , v_contrast.value);
+       GAMMACHECK(cachebrightness , v_brightness.value);
+       GAMMACHECK(cachecolorenable, v_color_enable.integer);
+       GAMMACHECK(cacheblack[0]   , v_color_black_r.value);
+       GAMMACHECK(cacheblack[1]   , v_color_black_g.value);
+       GAMMACHECK(cacheblack[2]   , v_color_black_b.value);
+       GAMMACHECK(cachegrey[0]    , v_color_grey_r.value);
+       GAMMACHECK(cachegrey[1]    , v_color_grey_g.value);
+       GAMMACHECK(cachegrey[2]    , v_color_grey_b.value);
+       GAMMACHECK(cachewhite[0]   , v_color_white_r.value);
+       GAMMACHECK(cachewhite[1]   , v_color_white_g.value);
+       GAMMACHECK(cachewhite[2]   , v_color_white_b.value);
+#undef GAMMACHECK
+
+       if (!gamma_forcenextframe)
                return;
 
-       BOUNDCVAR(v_gamma, 0.1, 5);cachegamma = v_gamma.value;
-       BOUNDCVAR(v_contrast, 1, 5);cachecontrast = v_contrast.value;
-       BOUNDCVAR(v_brightness, 0, 0.8);cachebrightness = v_brightness.value;
-       BOUNDCVAR(v_color_black_r, 0, 0.8);cacheblack[0] = v_color_black_r.value;
-       BOUNDCVAR(v_color_black_g, 0, 0.8);cacheblack[1] = v_color_black_g.value;
-       BOUNDCVAR(v_color_black_b, 0, 0.8);cacheblack[2] = v_color_black_b.value;
-       BOUNDCVAR(v_color_grey_r, 0, 0.95);cachegrey[0] = v_color_grey_r.value;
-       BOUNDCVAR(v_color_grey_g, 0, 0.95);cachegrey[1] = v_color_grey_g.value;
-       BOUNDCVAR(v_color_grey_b, 0, 0.95);cachegrey[2] = v_color_grey_b.value;
-       BOUNDCVAR(v_color_white_r, 1, 5);cachewhite[0] = v_color_white_r.value;
-       BOUNDCVAR(v_color_white_g, 1, 5);cachewhite[1] = v_color_white_g.value;
-       BOUNDCVAR(v_color_white_b, 1, 5);cachewhite[2] = v_color_white_b.value;
-       cachecolorenable = v_color_enable.integer;
-       cachehwgamma = vid_activewindow ? v_hwgamma.integer : 0;
-
        gamma_forcenextframe = false;
 
        if (cachehwgamma)