From: Alejandro Piñeiro <apinhe...@igalia.com> This would allow to use this method if you are just querying if it is allowed, like for arb_internalformat_query2. --- src/mesa/main/teximage.c | 18 +++++------------- src/mesa/main/teximage.h | 4 +--- src/mesa/main/texstorage.c | 8 ++++---- 3 files changed, 10 insertions(+), 20 deletions(-)
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index bf94636..250d758 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -1566,19 +1566,12 @@ compressed_tex_size(GLsizei width, GLsizei height, GLsizei depth, * \param ctx GL context * \param target Texture target * \param internalFormat Internal format of the texture image - * \param dimensions Dimensionality at the caller. This is \b not used - * in the validation. It is only used when logging - * error messages. - * \param caller Base name of the calling function (e.g., - * "glTexImage" or "glTexStorage"). * * \returns true if the combination is legal, false otherwise. */ bool _mesa_legal_texture_base_format_for_target(struct gl_context *ctx, - GLenum target, GLenum internalFormat, - unsigned dimensions, - const char *caller) + GLenum target, GLenum internalFormat) { if (_mesa_base_tex_format(ctx, internalFormat) == GL_DEPTH_COMPONENT || _mesa_base_tex_format(ctx, internalFormat) == GL_DEPTH_STENCIL @@ -1617,9 +1610,6 @@ _mesa_legal_texture_base_format_for_target(struct gl_context *ctx, !((target == GL_TEXTURE_CUBE_MAP_ARRAY || target == GL_PROXY_TEXTURE_CUBE_MAP_ARRAY) && ctx->Extensions.ARB_texture_cube_map_array)) { - _mesa_error(ctx, GL_INVALID_OPERATION, - "%s%dD(bad target for depth texture)", - caller, dimensions); return false; } } @@ -1863,9 +1853,11 @@ texture_error_check( struct gl_context *ctx, } /* additional checks for depth textures */ - if (!_mesa_legal_texture_base_format_for_target(ctx, target, internalFormat, - dimensions, "glTexImage")) + if (!_mesa_legal_texture_base_format_for_target(ctx, target, internalFormat)) { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glTexImage%dD(bad target for texture)", dimensions); return GL_TRUE; + } /* additional checks for compressed textures */ if (_mesa_is_compressed_format(ctx, internalFormat)) { diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h index f51bdd9..b693ad7 100644 --- a/src/mesa/main/teximage.h +++ b/src/mesa/main/teximage.h @@ -160,9 +160,7 @@ _mesa_validate_texbuffer_format(const struct gl_context *ctx, bool _mesa_legal_texture_base_format_for_target(struct gl_context *ctx, GLenum target, - GLenum internalFormat, - unsigned dimensions, - const char *caller); + GLenum internalFormat); bool _mesa_format_no_online_compression(const struct gl_context *ctx, GLenum format); diff --git a/src/mesa/main/texstorage.c b/src/mesa/main/texstorage.c index 9fd969f..f4a0760 100644 --- a/src/mesa/main/texstorage.c +++ b/src/mesa/main/texstorage.c @@ -358,11 +358,11 @@ tex_storage_error_check(struct gl_context *ctx, } /* additional checks for depth textures */ - if (!_mesa_legal_texture_base_format_for_target(ctx, target, internalformat, - dims, dsa ? - "glTextureStorage" : - "glTexStorage")) + if (!_mesa_legal_texture_base_format_for_target(ctx, target, internalformat)) { + _mesa_error(ctx, GL_INVALID_OPERATION, "glTex%sStorage%uD(bad target for texture)", + suffix, dims); return GL_TRUE; + } return GL_FALSE; } -- 2.5.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev