mesa: restore the negate flag of dots in build_lighting.
authorXiang, Haihao <haihao.xiang@intel.com>
Tue, 11 Nov 2008 05:36:32 +0000 (13:36 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Tue, 11 Nov 2008 05:36:32 +0000 (13:36 +0800)
Dots is re-used if more than one light is enabled. Previously
the negate flag of dots may affect next light.

src/mesa/main/ffvertex_prog.c

index 0d1346420c7bac5f216b13834ab6f09aef5ed7dc..ebc02940ded63e0ae8cfffe1a9ce80df6789feb7 100644 (file)
@@ -1311,6 +1311,9 @@ static void build_lighting( struct tnl_program *p )
            emit_op3(p, OPCODE_MAD, res0, mask0, swizzle1(lit,Y), diffuse, _bfc0);
            emit_op3(p, OPCODE_MAD, res1, mask1, swizzle1(lit,Z), specular, _bfc1);
 
+            /* restore negate flag for next lighting */
+            dots = negate(dots);
+
            release_temp(p, ambient);
            release_temp(p, diffuse);
            release_temp(p, specular);