mesa: add support for ATI_envmap_bumpmap

add new entrypoints, new texture format, etc
translate in texenvprogram.c for drivers using the mesa-generated tex env
fragment program
also handled in swrast, but not tested (cannot work due to negative texel
results not handled correctly)
This commit is contained in:
Roland Scheidegger
2009-03-12 15:01:16 +01:00
parent b7d841b59e
commit 114152e068
24 changed files with 906 additions and 24 deletions

View File

@@ -506,6 +506,26 @@ _mesa_fetch_state(GLcontext *ctx, const gl_state_index state[],
}
}
return;
case STATE_ROT_MATRIX_0:
{
const int unit = (int) state[2];
GLfloat *rotMat22 = ctx->Texture.Unit[unit].RotMatrix;
value[0] = rotMat22[0];
value[1] = rotMat22[2];
value[2] = 0.0;
value[3] = 0.0;
}
break;
case STATE_ROT_MATRIX_1:
{
const int unit = (int) state[2];
GLfloat *rotMat22 = ctx->Texture.Unit[unit].RotMatrix;
value[0] = rotMat22[1];
value[1] = rotMat22[3];
value[2] = 0.0;
value[3] = 0.0;
}
break;
/* XXX: make sure new tokens added here are also handled in the
* _mesa_program_state_flags() switch, below.
@@ -591,6 +611,8 @@ _mesa_program_state_flags(const gl_state_index state[STATE_LENGTH])
case STATE_TEXRECT_SCALE:
case STATE_SHADOW_AMBIENT:
case STATE_ROT_MATRIX_0:
case STATE_ROT_MATRIX_1:
return _NEW_TEXTURE;
case STATE_FOG_PARAMS_OPTIMIZED:
return _NEW_FOG;
@@ -806,6 +828,12 @@ append_token(char *dst, gl_state_index k)
case STATE_SHADOW_AMBIENT:
append(dst, "CompareFailValue");
break;
case STATE_ROT_MATRIX_0:
append(dst, "rotMatrixRow0");
break;
case STATE_ROT_MATRIX_1:
append(dst, "rotMatrixRow1");
break;
default:
/* probably STATE_INTERNAL_DRIVER+i (driver private state) */
append(dst, "driverState");