Mesa (master): swrast: fix redundant texture application in affine_textured_triangle().

Brian Paul brianp at kemper.freedesktop.org
Wed Jan 21 16:13:42 UTC 2009


Module: Mesa
Branch: master
Commit: 8c7135ee14fb6f4d8b6e64d570daee3512c99438
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c7135ee14fb6f4d8b6e64d570daee3512c99438

Author: Brian Paul <brianp at vmware.com>
Date:   Wed Jan 21 09:05:02 2009 -0700

swrast: fix redundant texture application in affine_textured_triangle().

This function does simple texture mapping so disable normal texture mapping
before we call _swrast_write_rgba_span() so that we don't do it twice.

---

 src/mesa/swrast/s_triangle.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/src/mesa/swrast/s_triangle.c b/src/mesa/swrast/s_triangle.c
index 2033ab5..a2e8433 100644
--- a/src/mesa/swrast/s_triangle.c
+++ b/src/mesa/swrast/s_triangle.c
@@ -1,6 +1,6 @@
 /*
  * Mesa 3-D graphics library
- * Version:  6.5.3
+ * Version:  7.3
  *
  * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
  *
@@ -263,6 +263,10 @@ affine_span(GLcontext *ctx, SWspan *span,
             struct affine_info *info)
 {
    GLchan sample[4];  /* the filtered texture sample */
+   const GLuint texEnableSave = ctx->Texture._EnabledUnits;
+
+   /* Disable tex units so they're not re-applied in swrast_write_rgba_span */
+   ctx->Texture._EnabledUnits = 0x0;
 
    /* Instead of defining a function for each mode, a test is done
     * between the outer and inner loops. This is to reduce code size
@@ -493,8 +497,12 @@ affine_span(GLcontext *ctx, SWspan *span,
    }
    span->interpMask &= ~SPAN_RGBA;
    ASSERT(span->arrayMask & SPAN_RGBA);
+
    _swrast_write_rgba_span(ctx, span);
 
+   /* re-enable texture units */
+   ctx->Texture._EnabledUnits = texEnableSave;
+
 #undef SPAN_NEAREST
 #undef SPAN_LINEAR
 }




More information about the mesa-commit mailing list