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@anholt.net>
This commit is contained in:
parent
ee977183dc
commit
115964052b
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue