From e6dea091c0a1fe9ad9720c07ddf7164e5fc45ac6 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Tue, 5 Aug 2003 18:12:55 +0000 Subject: Fix samples/fog.c regression - missing test for NeedEyeCoords. --- src/mesa/main/light.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'src/mesa/main/light.c') diff --git a/src/mesa/main/light.c b/src/mesa/main/light.c index 3ef2e3eac1..046738882d 100644 --- a/src/mesa/main/light.c +++ b/src/mesa/main/light.c @@ -1317,15 +1317,24 @@ void _mesa_update_tnl_spaces( GLcontext *ctx, GLuint new_state ) { const GLuint oldneedeyecoords = ctx->_NeedEyeCoords; - ctx->_NeedEyeCoords = (ctx->_ForceEyeCoords || - (ctx->Texture._GenFlags & TEXGEN_NEED_EYE_COORD) || - ctx->Point._Attenuated || - ctx->Light._NeedEyeCoords); - + ctx->_NeedEyeCoords = 0; + + if (ctx->_ForceEyeCoords || + (ctx->Texture._GenFlags & TEXGEN_NEED_EYE_COORD) || + ctx->Point._Attenuated || + ctx->Light._NeedEyeCoords) + ctx->_NeedEyeCoords = 1; + + if (ctx->Light.Enabled && + !TEST_MAT_FLAGS( ctx->ModelviewMatrixStack.Top, + MAT_FLAGS_LENGTH_PRESERVING)) + ctx->_NeedEyeCoords = 1; + + /* Check if the truth-value interpretations of the bitfields have * changed: */ - if ((oldneedeyecoords == 0) != (ctx->_NeedEyeCoords == 0)) { + if (oldneedeyecoords != ctx->_NeedEyeCoords) { /* Recalculate all state that depends on _NeedEyeCoords. */ update_modelview_scale(ctx); -- cgit v1.2.3