[Mesa-dev] [RFC-PATCH 09/11] mesa: clean up validate_texture_wrap_mode

Chia-I Wu olvaffe at gmail.com
Sun Oct 30 12:07:35 PDT 2011


From: Chia-I Wu <olv at lunarg.com>

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.
---
 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 dc5ee33..c088e9e 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 );
-- 
1.7.6.3



More information about the mesa-dev mailing list