diff options
author | Antia Puentes <[email protected]> | 2015-11-26 15:08:47 +0100 |
---|---|---|
committer | Eduardo Lima Mitev <[email protected]> | 2016-03-03 15:14:06 +0100 |
commit | 06852f4b7a1ab9ea724bd7708662b2e6549aa98e (patch) | |
tree | c99373f428083ac51e50a07efb204bd7ee9dde83 /src/mesa/main | |
parent | df3a37311d2cb1bf83e6803a8c974b7269d4c3c9 (diff) |
mesa/genmipmap: Added a function to check if the target is valid
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 | 34 | ||||
-rw-r--r-- | src/mesa/main/genmipmap.h | 3 |
2 files changed, 24 insertions, 13 deletions
diff --git a/src/mesa/main/genmipmap.c b/src/mesa/main/genmipmap.c index 6c2d31dbcf3..efbb1cfea19 100644 --- a/src/mesa/main/genmipmap.c +++ b/src/mesa/main/genmipmap.c @@ -38,20 +38,11 @@ #include "texobj.h" #include "hash.h" -/** - * Implements glGenerateMipmap and glGenerateTextureMipmap. - * Generates all the mipmap levels below the base level. - */ -void -_mesa_generate_texture_mipmap(struct gl_context *ctx, - struct gl_texture_object *texObj, GLenum target, - bool dsa) +bool +_mesa_is_valid_generate_texture_mipmap_target(struct gl_context *ctx, + GLenum target) { - struct gl_texture_image *srcImage; GLboolean error; - const char *suffix = dsa ? "Texture" : ""; - - FLUSH_VERTICES(ctx, 0); switch (target) { case GL_TEXTURE_1D: @@ -81,7 +72,24 @@ _mesa_generate_texture_mipmap(struct gl_context *ctx, error = GL_TRUE; } - if (error) { + return (error != GL_TRUE); +} + +/** + * Implements glGenerateMipmap and glGenerateTextureMipmap. + * Generates all the mipmap levels below the base level. + */ +void +_mesa_generate_texture_mipmap(struct gl_context *ctx, + struct gl_texture_object *texObj, GLenum target, + bool dsa) +{ + struct gl_texture_image *srcImage; + const char *suffix = dsa ? "Texture" : ""; + + FLUSH_VERTICES(ctx, 0); + + if (!_mesa_is_valid_generate_texture_mipmap_target(ctx, target)) { _mesa_error(ctx, GL_INVALID_ENUM, "glGenerate%sMipmap(target=%s)", suffix, _mesa_enum_to_string(target)); return; diff --git a/src/mesa/main/genmipmap.h b/src/mesa/main/genmipmap.h index f4ef859511e..843eeace30a 100644 --- a/src/mesa/main/genmipmap.h +++ b/src/mesa/main/genmipmap.h @@ -32,6 +32,9 @@ extern void _mesa_generate_texture_mipmap(struct gl_context *ctx, struct gl_texture_object *texObj, GLenum target, bool dsa); +bool +_mesa_is_valid_generate_texture_mipmap_target(struct gl_context *ctx, + GLenum target); extern void GLAPIENTRY _mesa_GenerateMipmap(GLenum target); |