mesa/main: not fill mesa_error on _mesa_legal_texture_base_format_for_target
This would allow to use this method if you are just querying if it is allowed, like for arb_internalformat_query2. Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
committed by
Eduardo Lima Mitev
parent
aaf5ad513b
commit
95392cfa9d
@@ -1552,19 +1552,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
|
||||
@@ -1603,9 +1596,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;
|
||||
}
|
||||
}
|
||||
@@ -1849,9 +1839,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)) {
|
||||
|
||||
@@ -210,9 +210,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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user