Fix support for variable number of render targets.

Bug 19353282

Change-Id: I4e99589477de32bb8004feec673e1dbddb675047
Reviewed-on: https://swiftshader-review.googlesource.com/5144
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Nicolas Capens <capn@google.com>
Reviewed-by: Nicolas Capens <capn@google.com>
diff --git a/src/Renderer/PixelProcessor.cpp b/src/Renderer/PixelProcessor.cpp
index 02d4c56..636351a 100644
--- a/src/Renderer/PixelProcessor.cpp
+++ b/src/Renderer/PixelProcessor.cpp
@@ -959,13 +959,9 @@
 
 		state.logicalOperation = context->colorLogicOp();
 
-		state.colorWriteMask = (context->colorWriteActive(0) << 0) |
-		                       (context->colorWriteActive(1) << 4) |
-		                       (context->colorWriteActive(2) << 8) |
-		                       (context->colorWriteActive(3) << 12);
-
 		for(int i = 0; i < RENDERTARGETS; i++)
 		{
+			state.colorWriteMask |= context->colorWriteActive(i) << (4 * i);
 			state.targetFormat[i] = context->renderTargetInternalFormat(i);
 		}