Dont assume GLbooleans are ones when true.
authorAapo Tahkola <aet@rasterburn.org>
Sat, 14 May 2005 16:52:32 +0000 (16:52 +0000)
committerAapo Tahkola <aet@rasterburn.org>
Sat, 14 May 2005 16:52:32 +0000 (16:52 +0000)
src/mesa/drivers/dri/r300/r300_state.c

index 7d1835f2e72b9c8bb6f04195f90a585f1c74afda..16077560965f0a071f2c1624f696dd04480bc007 100644 (file)
@@ -608,7 +608,10 @@ static void r300ColorMask(GLcontext* ctx,
                          GLboolean r, GLboolean g, GLboolean b, GLboolean a)
 {
        r300ContextPtr r300 = R300_CONTEXT(ctx);
-       int mask = (b << 0) | (g << 1) | (r << 2) | (a << 3);
+       int mask = (r ? R300_COLORMASK0_R : 0) |
+                  (g ? R300_COLORMASK0_G : 0) |
+                  (b ? R300_COLORMASK0_B : 0) |
+                  (a ? R300_COLORMASK0_A : 0);
 
        if (mask != r300->hw.cmk.cmd[R300_CMK_COLORMASK]) {
                R300_STATECHANGE(r300, cmk);