mesa: remove _mesa_get_tex_unit_err() and fix error handling
This helper was only called from _mesa_BindTextureUnit(). It's simpler to just inline it. The error check / code / message in the helper was incorrect. It was written for glBindTextures(), not glBindTextureUnit(). The correct error for a bad texture unit number is GL_INVALID_VALUE. The error message now reports the unit number rather than a GL_TEXTUREi enum. Fixes a failure in piglit's arb_direct_state_access-bind-texture-unit test. Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
This commit is contained in:
parent
c277fa3940
commit
a9408f3ca1
|
@ -1780,8 +1780,13 @@ _mesa_BindTextureUnit(GLuint unit, GLuint texture)
|
|||
struct gl_texture_object *texObj;
|
||||
struct gl_texture_unit *texUnit;
|
||||
|
||||
/* Get the texture unit (this is an array look-up) */
|
||||
texUnit = _mesa_get_tex_unit_err(ctx, unit, "glBindTextureUnit");
|
||||
if (unit >= _mesa_max_tex_unit(ctx)) {
|
||||
_mesa_error(ctx, GL_INVALID_VALUE, "glBindTextureUnit(unit=%u)", unit);
|
||||
return;
|
||||
}
|
||||
|
||||
texUnit = _mesa_get_tex_unit(ctx, unit);
|
||||
assert(texUnit);
|
||||
if (!texUnit) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -63,24 +63,6 @@ _mesa_max_tex_unit(struct gl_context *ctx)
|
|||
ctx->Const.MaxTextureCoordUnits);
|
||||
}
|
||||
|
||||
static inline struct gl_texture_unit *
|
||||
_mesa_get_tex_unit_err(struct gl_context *ctx, GLuint unit, const char *func)
|
||||
{
|
||||
if (unit < _mesa_max_tex_unit(ctx))
|
||||
return _mesa_get_tex_unit(ctx, unit);
|
||||
|
||||
/* Note: This error is a precedent set by glBindTextures. From the GL 4.5
|
||||
* specification (30.10.2014) Section 8.1 ("Texture Objects"):
|
||||
*
|
||||
* "An INVALID_OPERATION error is generated if first + count is greater
|
||||
* than the number of texture image units supported by the
|
||||
* implementation."
|
||||
*/
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION, "%s(unit=%s)", func,
|
||||
_mesa_enum_to_string(GL_TEXTURE0+unit));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
extern void
|
||||
_mesa_copy_texture_state( const struct gl_context *src, struct gl_context *dst );
|
||||
|
|
Loading…
Reference in New Issue