mesa/genmipmap: Added a function to validate the internalformat
It will be used by the ARB_internalformat_query2 implementation to implement mipmap related queries. Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:

committed by
Eduardo Lima Mitev

parent
06852f4b7a
commit
079d99b830
@@ -75,6 +75,16 @@ _mesa_is_valid_generate_texture_mipmap_target(struct gl_context *ctx,
|
||||
return (error != GL_TRUE);
|
||||
}
|
||||
|
||||
bool
|
||||
_mesa_is_valid_generate_texture_mipmap_internalformat(struct gl_context *ctx,
|
||||
GLenum internalformat)
|
||||
{
|
||||
return (!_mesa_is_enum_format_integer(internalformat) &&
|
||||
!_mesa_is_depthstencil_format(internalformat) &&
|
||||
!_mesa_is_astc_format(internalformat) &&
|
||||
!_mesa_is_stencil_format(internalformat));
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements glGenerateMipmap and glGenerateTextureMipmap.
|
||||
* Generates all the mipmap levels below the base level.
|
||||
@@ -117,10 +127,8 @@ _mesa_generate_texture_mipmap(struct gl_context *ctx,
|
||||
return;
|
||||
}
|
||||
|
||||
if (_mesa_is_enum_format_integer(srcImage->InternalFormat) ||
|
||||
_mesa_is_depthstencil_format(srcImage->InternalFormat) ||
|
||||
_mesa_is_astc_format(srcImage->InternalFormat) ||
|
||||
_mesa_is_stencil_format(srcImage->InternalFormat)) {
|
||||
if (!_mesa_is_valid_generate_texture_mipmap_internalformat(ctx,
|
||||
srcImage->InternalFormat)) {
|
||||
_mesa_unlock_texture(ctx, texObj);
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glGenerate%sMipmap(invalid internal format)", suffix);
|
||||
|
@@ -35,6 +35,9 @@ _mesa_generate_texture_mipmap(struct gl_context *ctx,
|
||||
bool
|
||||
_mesa_is_valid_generate_texture_mipmap_target(struct gl_context *ctx,
|
||||
GLenum target);
|
||||
bool
|
||||
_mesa_is_valid_generate_texture_mipmap_internalformat(struct gl_context *ctx,
|
||||
GLenum internalformat);
|
||||
|
||||
extern void GLAPIENTRY
|
||||
_mesa_GenerateMipmap(GLenum target);
|
||||
|
Reference in New Issue
Block a user