summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2009-10-27 13:51:51 -0600
committerBrian Paul <[email protected]>2009-10-27 17:00:31 -0600
commit72cb441c2feb7e5f11fc84a2d9f551da94ce2f16 (patch)
tree6efeb75af37122e07a9dd1ce0923c38504247529
parent33531614de94d396d10a3bed4a020abe2e2a40b5 (diff)
mesa: avoid redundant state setting in glClientActiveTexture
Plus add code for verbose/debugging.
-rw-r--r--src/mesa/main/texstate.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
index 16492bd7bcf..c735e18affb 100644
--- a/src/mesa/main/texstate.c
+++ b/src/mesa/main/texstate.c
@@ -318,11 +318,18 @@ _mesa_ClientActiveTextureARB(GLenum texture)
GLuint texUnit = texture - GL_TEXTURE0;
ASSERT_OUTSIDE_BEGIN_END(ctx);
+ if (MESA_VERBOSE & (VERBOSE_API | VERBOSE_TEXTURE))
+ _mesa_debug(ctx, "glClientActiveTexture %s\n",
+ _mesa_lookup_enum_by_nr(texture));
+
if (texUnit >= ctx->Const.MaxTextureCoordUnits) {
_mesa_error(ctx, GL_INVALID_ENUM, "glClientActiveTexture(texture)");
return;
}
+ if (ctx->Array.ActiveTexture == texUnit)
+ return;
+
FLUSH_VERTICES(ctx, _NEW_ARRAY);
ctx->Array.ActiveTexture = texUnit;
}