diff options
author | Antia Puentes <[email protected]> | 2015-11-26 15:20:24 +0100 |
---|---|---|
committer | Eduardo Lima Mitev <[email protected]> | 2016-03-03 15:14:06 +0100 |
commit | 079d99b830073f55a22954f6bb2b56cfb731e5e3 (patch) | |
tree | be83e07935d18427172b2824e8542c555aaa173b /src/mesa/main | |
parent | 06852f4b7a1ab9ea724bd7708662b2e6549aa98e (diff) |
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 <[email protected]>
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/genmipmap.c | 16 | ||||
-rw-r--r-- | src/mesa/main/genmipmap.h | 3 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/mesa/main/genmipmap.c b/src/mesa/main/genmipmap.c index efbb1cfea19..f9ef2d14664 100644 --- a/src/mesa/main/genmipmap.c +++ b/src/mesa/main/genmipmap.c @@ -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); diff --git a/src/mesa/main/genmipmap.h b/src/mesa/main/genmipmap.h index 843eeace30a..40b7f3636aa 100644 --- a/src/mesa/main/genmipmap.h +++ b/src/mesa/main/genmipmap.h @@ -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); |