Mesa (master): mesa: Refactor validate_texture_wrap_mode to use a switch-statement
Ian Romanick
idr at kemper.freedesktop.org
Thu Aug 23 17:20:49 UTC 2012
Module: Mesa
Branch: master
Commit: d53101a9f31e1cba553c80dbafd23c748dd58a1d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d53101a9f31e1cba553c80dbafd23c748dd58a1d
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Mon Oct 3 12:46:23 2011 -0700
mesa: Refactor validate_texture_wrap_mode to use a switch-statement
This makes the next couple changes a little easier.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
---
src/mesa/main/texparam.c | 77 +++++++++++++++++++++++++---------------------
1 files changed, 42 insertions(+), 35 deletions(-)
diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
index 41b9f97..a0c508c 100644
--- a/src/mesa/main/texparam.c
+++ b/src/mesa/main/texparam.c
@@ -29,7 +29,7 @@
* glTexParameter-related functions
*/
-
+#include <stdbool.h>
#include "main/glheader.h"
#include "main/colormac.h"
#include "main/context.h"
@@ -56,43 +56,50 @@ static GLboolean
validate_texture_wrap_mode(struct gl_context * ctx, GLenum target, GLenum wrap)
{
const struct gl_extensions * const e = & ctx->Extensions;
+ bool supported;
- 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_EXTERNAL_OES) {
- if (wrap == GL_CLAMP_TO_EDGE)
- 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;
- }
+ switch (wrap) {
+ case GL_CLAMP:
+ supported = (target != GL_TEXTURE_EXTERNAL_OES);
+ break;
+
+ case GL_CLAMP_TO_EDGE:
+ supported = true;
+ break;
+
+ case GL_CLAMP_TO_BORDER:
+ supported = e->ARB_texture_border_clamp
+ && (target != GL_TEXTURE_EXTERNAL_OES);
+ break;
+
+ case GL_REPEAT:
+ case GL_MIRRORED_REPEAT:
+ supported = (target != GL_TEXTURE_RECTANGLE_NV)
+ && (target != GL_TEXTURE_EXTERNAL_OES);
+ break;
+
+ case GL_MIRROR_CLAMP_EXT:
+ case GL_MIRROR_CLAMP_TO_EDGE_EXT:
+ supported = (e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp)
+ && (target != GL_TEXTURE_RECTANGLE_NV)
+ && (target != GL_TEXTURE_EXTERNAL_OES);
+ break;
+
+ case GL_MIRROR_CLAMP_TO_BORDER_EXT:
+ supported = e->EXT_texture_mirror_clamp
+ && (target != GL_TEXTURE_RECTANGLE_NV)
+ && (target != GL_TEXTURE_EXTERNAL_OES);
+ break;
+
+ default:
+ supported = false;
+ break;
}
- _mesa_error( ctx, GL_INVALID_ENUM, "glTexParameter(param=0x%x)", wrap );
- return GL_FALSE;
+ if (!supported)
+ _mesa_error( ctx, GL_INVALID_ENUM, "glTexParameter(param=0x%x)", wrap );
+
+ return supported;
}
More information about the mesa-commit
mailing list