Mesa (master): mesa: handle no-op cases sooner in _mesa_[Client] ActiveTexture()
Brian Paul
brianp at kemper.freedesktop.org
Thu Aug 6 13:41:21 UTC 2015
Module: Mesa
Branch: master
Commit: 115964052b25a958b2ad4ec42ae07133b2768cf9
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=115964052b25a958b2ad4ec42ae07133b2768cf9
Author: Brian Paul <brianp at vmware.com>
Date: Mon Aug 3 15:06:42 2015 -0600
mesa: handle no-op cases sooner in _mesa_[Client]ActiveTexture()
If the new texture unit is the current texture unit, we can return
before error checking.
Reviewed-by: Eric Anholt <eric at anholt.net>
---
src/mesa/main/texstate.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
index 1e75e0a..9b5928c 100644
--- a/src/mesa/main/texstate.c
+++ b/src/mesa/main/texstate.c
@@ -289,23 +289,23 @@ _mesa_ActiveTexture(GLenum texture)
GLuint k;
GET_CURRENT_CONTEXT(ctx);
- k = _mesa_max_tex_unit(ctx);
-
- assert(k <= ARRAY_SIZE(ctx->Texture.Unit));
-
if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE))
_mesa_debug(ctx, "glActiveTexture %s\n",
_mesa_enum_to_string(texture));
+ if (ctx->Texture.CurrentUnit == texUnit)
+ return;
+
+ k = _mesa_max_tex_unit(ctx);
+
+ assert(k <= ARRAY_SIZE(ctx->Texture.Unit));
+
if (texUnit >= k) {
_mesa_error(ctx, GL_INVALID_ENUM, "glActiveTexture(texture=%s)",
_mesa_enum_to_string(texture));
return;
}
- if (ctx->Texture.CurrentUnit == texUnit)
- return;
-
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
ctx->Texture.CurrentUnit = texUnit;
@@ -327,14 +327,14 @@ _mesa_ClientActiveTexture(GLenum texture)
_mesa_debug(ctx, "glClientActiveTexture %s\n",
_mesa_enum_to_string(texture));
+ if (ctx->Array.ActiveTexture == texUnit)
+ return;
+
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;
}
More information about the mesa-commit
mailing list