Mesa (master): mesa: clamp texture border color if ARB_texture_float is unsupported

Marek Olšák mareko at kemper.freedesktop.org
Tue Mar 29 11:01:27 UTC 2011


Module: Mesa
Branch: master
Commit: e28fe8fe5d05c87a065f8e72adef8b5077da2c73
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e28fe8fe5d05c87a065f8e72adef8b5077da2c73

Author: Marek Olšák <maraeo at gmail.com>
Date:   Sat Mar 26 13:06:22 2011 +0100

mesa: clamp texture border color if ARB_texture_float is unsupported

ARB_texture_float disables clamping of the texture border color,
ARB_color_buffer_float only modifies clamping of the glGet query.

---

 src/mesa/main/texparam.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
index adb6bce..34b6add 100644
--- a/src/mesa/main/texparam.c
+++ b/src/mesa/main/texparam.c
@@ -534,10 +534,18 @@ set_tex_parameterf(struct gl_context *ctx,
 
    case GL_TEXTURE_BORDER_COLOR:
       flush(ctx);
-      texObj->BorderColor.f[RCOMP] = params[0];
-      texObj->BorderColor.f[GCOMP] = params[1];
-      texObj->BorderColor.f[BCOMP] = params[2];
-      texObj->BorderColor.f[ACOMP] = params[3];
+      /* ARB_texture_float disables clamping */
+      if (ctx->Extensions.ARB_texture_float) {
+         texObj->BorderColor.f[RCOMP] = params[0];
+         texObj->BorderColor.f[GCOMP] = params[1];
+         texObj->BorderColor.f[BCOMP] = params[2];
+         texObj->BorderColor.f[ACOMP] = params[3];
+      } else {
+         texObj->BorderColor.f[RCOMP] = CLAMP(params[0], 0.0F, 1.0F);
+         texObj->BorderColor.f[GCOMP] = CLAMP(params[1], 0.0F, 1.0F);
+         texObj->BorderColor.f[BCOMP] = CLAMP(params[2], 0.0F, 1.0F);
+         texObj->BorderColor.f[ACOMP] = CLAMP(params[3], 0.0F, 1.0F);
+      }
       return GL_TRUE;
 
    default:




More information about the mesa-commit mailing list