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.
This commit is contained in:
Brian Paul 2009-01-21 09:05:02 -07:00
parent 4683cab29a
commit 8c7135ee14
1 changed files with 9 additions and 1 deletions

View File

@ -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
}