From: Brian Paul <bri...@vmware.com>

There's four combiner terms (not 3) with GL_NV_texture_env_combine4.
Use a loop to make the code a little more compact.
---
 src/mesa/main/attrib.c |   37 +++++++++++++------------------------
 1 files changed, 13 insertions(+), 24 deletions(-)

diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c
index 6f427e0..82d7259 100644
--- a/src/mesa/main/attrib.c
+++ b/src/mesa/main/attrib.c
@@ -733,30 +733,19 @@ pop_texture_group(struct gl_context *ctx, struct 
texture_state *texstate)
                    unit->Combine.ModeRGB);
       _mesa_TexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA,
                    unit->Combine.ModeA);
-      _mesa_TexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB,
-                   unit->Combine.SourceRGB[0]);
-      _mesa_TexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB,
-                   unit->Combine.SourceRGB[1]);
-      _mesa_TexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB,
-                   unit->Combine.SourceRGB[2]);
-      _mesa_TexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA,
-                   unit->Combine.SourceA[0]);
-      _mesa_TexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA,
-                   unit->Combine.SourceA[1]);
-      _mesa_TexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_ALPHA,
-                   unit->Combine.SourceA[2]);
-      _mesa_TexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB,
-                   unit->Combine.OperandRGB[0]);
-      _mesa_TexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB,
-                   unit->Combine.OperandRGB[1]);
-      _mesa_TexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB,
-                   unit->Combine.OperandRGB[2]);
-      _mesa_TexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA,
-                   unit->Combine.OperandA[0]);
-      _mesa_TexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA,
-                   unit->Combine.OperandA[1]);
-      _mesa_TexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_ALPHA,
-                   unit->Combine.OperandA[2]);
+      {
+         GLuint i;
+         for (i = 0; i < MAX_COMBINER_TERMS; i++) {
+            _mesa_TexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB + i,
+                          unit->Combine.SourceRGB[i]);
+            _mesa_TexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA + i,
+                          unit->Combine.SourceA[i]);
+            _mesa_TexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB + i,
+                          unit->Combine.OperandRGB[i]);
+            _mesa_TexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA + i,
+                          unit->Combine.OperandA[i]);
+         }
+      }
       _mesa_TexEnvi(GL_TEXTURE_ENV, GL_RGB_SCALE,
                    1 << unit->Combine.ScaleShiftRGB);
       _mesa_TexEnvi(GL_TEXTURE_ENV, GL_ALPHA_SCALE,
-- 
1.7.3.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to