-/* $Id: texstate.c,v 1.62 2001/12/18 04:06:45 brianp Exp $ */
+/* $Id: texstate.c,v 1.64 2002/02/15 16:32:06 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 4.1
*
- * Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
#ifndef GL_TEXTURE_COMPARE_MODE_ARB
#define GL_TEXTURE_COMPARE_MODE_ARB 0x9990
#define GL_TEXTURE_COMPARE_FUNC_ARB 0x9991
-#define GL_TEXTURE_COMPARE_RESULT_ARB 0x9992
#define GL_COMPARE_R_TO_TEXTURE_ARB 0x9993
#endif
_mesa_TexEnviv( GLenum target, GLenum pname, const GLint *param )
{
GLfloat p[4];
- p[0] = INT_TO_FLOAT( param[0] );
- p[1] = INT_TO_FLOAT( param[1] );
- p[2] = INT_TO_FLOAT( param[2] );
- p[3] = INT_TO_FLOAT( param[3] );
+ if (pname == GL_TEXTURE_ENV_COLOR) {
+ p[0] = INT_TO_FLOAT( param[0] );
+ p[1] = INT_TO_FLOAT( param[1] );
+ p[2] = INT_TO_FLOAT( param[2] );
+ p[3] = INT_TO_FLOAT( param[3] );
+ }
+ else {
+ p[0] = (GLint) param[0];
+ p[1] = p[2] = p[3] = 0; /* init to zero, just to be safe */
+ }
_mesa_TexEnvfv( target, pname, p );
}
case GL_TEXTURE_COMPARE_MODE_ARB:
if (ctx->Extensions.ARB_shadow) {
const GLenum mode = (GLenum) params[0];
- if (mode == GL_LUMINANCE || mode == GL_COMPARE_R_TO_TEXTURE_ARB) {
+ if (mode == GL_NONE || mode == GL_COMPARE_R_TO_TEXTURE_ARB) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
texObj->CompareMode = params[0];
}
return;
}
break;
- case GL_TEXTURE_COMPARE_RESULT_ARB:
- if (ctx->Extensions.ARB_shadow) {
+ case GL_DEPTH_TEXTURE_MODE_ARB:
+ if (ctx->Extensions.ARB_depth_texture) {
const GLenum result = (GLenum) params[0];
if (result == GL_LUMINANCE || result == GL_INTENSITY
|| result == GL_ALPHA) {
FLUSH_VERTICES(ctx, _NEW_TEXTURE);
- texObj->CompareResult = params[0];
+ texObj->DepthMode = params[0];
}
else {
_mesa_error(ctx, GL_INVALID_ENUM,
- "glTexParameter(bad GL_TEXTURE_COMPARE_RESULT_ARB)");
+ "glTexParameter(bad GL_DEPTH_TEXTURE_MODE_ARB)");
return;
}
}
else {
_mesa_error(ctx, GL_INVALID_ENUM,
- "glTexParameter(pname=GL_TEXTURE_COMPARE_RESULT_ARB)");
+ "glTexParameter(pname=GL_DEPTH_TEXTURE_MODE_ARB)");
return;
}
break;
return;
}
break;
- case GL_TEXTURE_COMPARE_RESULT_ARB:
- if (ctx->Extensions.ARB_shadow) {
- *params = (GLfloat) obj->CompareResult;
+ case GL_DEPTH_TEXTURE_MODE_ARB:
+ if (ctx->Extensions.ARB_depth_texture) {
+ *params = (GLfloat) obj->DepthMode;
return;
}
break;
return;
}
break;
- case GL_TEXTURE_COMPARE_RESULT_ARB:
- if (ctx->Extensions.ARB_shadow) {
- *params = (GLint) obj->CompareResult;
+ case GL_DEPTH_TEXTURE_MODE_ARB:
+ if (ctx->Extensions.ARB_depth_texture) {
+ *params = (GLint) obj->DepthMode;
return;
}
break;