diff options
author | Brian Paul <[email protected]> | 2002-10-04 19:10:06 +0000 |
---|---|---|
committer | Brian Paul <[email protected]> | 2002-10-04 19:10:06 +0000 |
commit | fc80ad6e62fb2b53d53756593099330477a44c52 (patch) | |
tree | 0b47f3ee84d613dfa2264d6f23e5c2a60cecc9ba /src/mesa/main/texstate.c | |
parent | f782b8189e718974a40d72ac4f6b8d213ca99e1e (diff) |
Changed a number of context fields from GLchan to GLfloat (such as ClearColor).
Also changed parameter types for some driver functions (like ctx->Driver.Clear-
Color). Updated all the device drivers.
Someday, we want to support 8, 16 and 32-bit channels dynamically at runtime.
Diffstat (limited to 'src/mesa/main/texstate.c')
-rw-r--r-- | src/mesa/main/texstate.c | 73 |
1 files changed, 20 insertions, 53 deletions
diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c index 1287bdf2bf8..e5c82e1514d 100644 --- a/src/mesa/main/texstate.c +++ b/src/mesa/main/texstate.c @@ -1,4 +1,4 @@ -/* $Id: texstate.c,v 1.79 2002/09/27 02:45:38 brianp Exp $ */ +/* $Id: texstate.c,v 1.80 2002/10/04 19:10:08 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -1148,28 +1148,16 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) _mesa_error( ctx, GL_INVALID_VALUE, "glTexParameter(param)" ); } break; -#if 0 /* someday */ - case GL_TEXTUER_BORDER_VALUES_NV: - /* don't clamp */ - FLUSH_VERTICES(ctx, _NEW_TEXTURE); - COPY_4V(texObj->BorderValues, params); - UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[0], params[0]); - UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[1], params[1]); - UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[2], params[2]); - UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[3], params[3]); - break; -#endif case GL_TEXTURE_BORDER_COLOR: - /* clamp */ FLUSH_VERTICES(ctx, _NEW_TEXTURE); - texObj->BorderValues[0] = CLAMP(params[0], 0.0F, 1.0F); - texObj->BorderValues[1] = CLAMP(params[1], 0.0F, 1.0F); - texObj->BorderValues[2] = CLAMP(params[2], 0.0F, 1.0F); - texObj->BorderValues[3] = CLAMP(params[3], 0.0F, 1.0F); - UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[0], texObj->BorderValues[0]); - UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[1], texObj->BorderValues[1]); - UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[2], texObj->BorderValues[2]); - UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[3], texObj->BorderValues[3]); + texObj->BorderColor[RCOMP] = params[0]; + texObj->BorderColor[GCOMP] = params[1]; + texObj->BorderColor[BCOMP] = params[2]; + texObj->BorderColor[ACOMP] = params[3]; + UNCLAMPED_FLOAT_TO_CHAN(texObj->_BorderChan[RCOMP], params[0]); + UNCLAMPED_FLOAT_TO_CHAN(texObj->_BorderChan[GCOMP], params[1]); + UNCLAMPED_FLOAT_TO_CHAN(texObj->_BorderChan[BCOMP], params[2]); + UNCLAMPED_FLOAT_TO_CHAN(texObj->_BorderChan[ACOMP], params[3]); break; case GL_TEXTURE_MIN_LOD: if (texObj->MinLod == params[0]) @@ -1255,7 +1243,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) case GL_SHADOW_AMBIENT_SGIX: /* aka GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */ if (ctx->Extensions.SGIX_shadow_ambient) { FLUSH_VERTICES(ctx, _NEW_TEXTURE); - UNCLAMPED_FLOAT_TO_CHAN(texObj->ShadowAmbient, params[0]); + texObj->ShadowAmbient = CLAMP(params[0], 0.0F, 1.0F); } else { _mesa_error(ctx, GL_INVALID_ENUM, @@ -1623,21 +1611,11 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params ) case GL_TEXTURE_WRAP_R_EXT: *params = ENUM_TO_FLOAT(obj->WrapR); return; -#if 0 /* someday */ - case GL_TEXTURE_BORDER_VALUES_NV: - /* unclamped */ - params[0] = obj->BorderValues[0]; - params[1] = obj->BorderValues[1]; - params[2] = obj->BorderValues[2]; - params[3] = obj->BorderValues[3]; - return; -#endif case GL_TEXTURE_BORDER_COLOR: - /* clamped */ - params[0] = obj->BorderColor[0] / CHAN_MAXF; - params[1] = obj->BorderColor[1] / CHAN_MAXF; - params[2] = obj->BorderColor[2] / CHAN_MAXF; - params[3] = obj->BorderColor[3] / CHAN_MAXF; + params[0] = CLAMP(obj->BorderColor[0], 0.0F, 1.0F); + params[1] = CLAMP(obj->BorderColor[1], 0.0F, 1.0F); + params[2] = CLAMP(obj->BorderColor[2], 0.0F, 1.0F); + params[3] = CLAMP(obj->BorderColor[3], 0.0F, 1.0F); return; case GL_TEXTURE_RESIDENT: { @@ -1684,7 +1662,7 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params ) break; case GL_SHADOW_AMBIENT_SGIX: /* aka GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */ if (ctx->Extensions.SGIX_shadow_ambient) { - *params = CHAN_TO_FLOAT(obj->ShadowAmbient); + *params = obj->ShadowAmbient; return; } break; @@ -1750,23 +1728,13 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params ) case GL_TEXTURE_WRAP_R_EXT: *params = (GLint) obj->WrapR; return; -#if 0 /* someday */ - case GL_TEXTURE_BORDER_VALUES_NV: - /* unclamped */ - params[0] = FLOAT_TO_INT(obj->BorderValues[0]); - params[1] = FLOAT_TO_INT(obj->BorderValues[1]); - params[2] = FLOAT_TO_INT(obj->BorderValues[2]); - params[3] = FLOAT_TO_INT(obj->BorderValues[3]); - return; -#endif case GL_TEXTURE_BORDER_COLOR: - /* clamped */ { GLfloat b[4]; - b[0] = CLAMP(obj->BorderValues[0], 0.0F, 1.0F); - b[1] = CLAMP(obj->BorderValues[1], 0.0F, 1.0F); - b[2] = CLAMP(obj->BorderValues[2], 0.0F, 1.0F); - b[3] = CLAMP(obj->BorderValues[3], 0.0F, 1.0F); + b[0] = CLAMP(obj->BorderColor[0], 0.0F, 1.0F); + b[1] = CLAMP(obj->BorderColor[1], 0.0F, 1.0F); + b[2] = CLAMP(obj->BorderColor[2], 0.0F, 1.0F); + b[3] = CLAMP(obj->BorderColor[3], 0.0F, 1.0F); params[0] = FLOAT_TO_INT(b[0]); params[1] = FLOAT_TO_INT(b[1]); params[2] = FLOAT_TO_INT(b[2]); @@ -1818,8 +1786,7 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params ) break; case GL_SHADOW_AMBIENT_SGIX: /* aka GL_TEXTURE_COMPARE_FAIL_VALUE_ARB */ if (ctx->Extensions.SGIX_shadow_ambient) { - GLfloat a = CHAN_TO_FLOAT(obj->ShadowAmbient); - *params = (GLint) FLOAT_TO_INT(a); + *params = (GLint) FLOAT_TO_INT(obj->ShadowAmbient); return; } break; |