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:
Antia Puentes
2015-11-26 15:20:24 +01:00
committed by Eduardo Lima Mitev
parent 06852f4b7a
commit 079d99b830
2 changed files with 15 additions and 4 deletions

View File

@@ -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);

View File

@@ -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);