diff options
author | Chia-I Wu <[email protected]> | 2011-10-22 19:56:54 +0800 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2011-11-03 15:09:45 +0800 |
commit | 79463f18ac91b2b0f1ed6dcdb26f84b942543d80 (patch) | |
tree | 588908c6374fc433357518eb11d90ff728a887b2 /src | |
parent | d8ba30af11f1894fcdd9138a8bc71ff054932bb6 (diff) |
mesa: clean up validate_texture_wrap_mode
GL_TEXTURE_RECTANGLE_NV (and soon GL_TEXTURE_EXTERNAL_OES) is special. Handle
it in its own if-block. There should be no functional change.
Reviewed-by: Brian Paul <[email protected]>
Acked-by: Jakob Bornecrantz <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/main/texparam.c | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c index 73e5cbec0e4..226aba03769 100644 --- a/src/mesa/main/texparam.c +++ b/src/mesa/main/texparam.c @@ -55,22 +55,34 @@ validate_texture_wrap_mode(struct gl_context * ctx, GLenum target, GLenum wrap) { const struct gl_extensions * const e = & ctx->Extensions; - if (wrap == GL_CLAMP || wrap == GL_CLAMP_TO_EDGE || - (wrap == GL_CLAMP_TO_BORDER && e->ARB_texture_border_clamp)) { - /* any texture target */ - return GL_TRUE; + if (target == GL_TEXTURE_RECTANGLE_NV) { + if (wrap == GL_CLAMP || wrap == GL_CLAMP_TO_EDGE || + (wrap == GL_CLAMP_TO_BORDER && e->ARB_texture_border_clamp)) + return GL_TRUE; } - else if (target != GL_TEXTURE_RECTANGLE_NV && - (wrap == GL_REPEAT || - wrap == GL_MIRRORED_REPEAT || - (wrap == GL_MIRROR_CLAMP_EXT && - (e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp)) || - (wrap == GL_MIRROR_CLAMP_TO_EDGE_EXT && - (e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp)) || - (wrap == GL_MIRROR_CLAMP_TO_BORDER_EXT && - (e->EXT_texture_mirror_clamp)))) { - /* non-rectangle texture */ - return GL_TRUE; + else { + switch (wrap) { + case GL_CLAMP: + case GL_REPEAT: + case GL_CLAMP_TO_EDGE: + case GL_MIRRORED_REPEAT: + return GL_TRUE; + case GL_CLAMP_TO_BORDER: + if (e->ARB_texture_border_clamp) + return GL_TRUE; + break; + case GL_MIRROR_CLAMP_EXT: + case GL_MIRROR_CLAMP_TO_EDGE_EXT: + if (e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp) + return GL_TRUE; + break; + case GL_MIRROR_CLAMP_TO_BORDER_EXT: + if (e->EXT_texture_mirror_clamp) + return GL_TRUE; + break; + default: + break; + } } _mesa_error( ctx, GL_INVALID_ENUM, "glTexParameter(param=0x%x)", wrap ); |