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