[Mesa-dev] [RFC 20/63] mesa/main: not fill mesa_error on _mesa_legal_texture_base_format_for_target
Eduardo Lima Mitev
elima at igalia.com
Tue Jan 19 08:42:00 PST 2016
From: Alejandro PiƱeiro <apinheiro at 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
More information about the mesa-dev
mailing list