NeedEyeCoords if non-uniform scale transform
authorBrian Paul <brian.paul@tungstengraphics.com>
Fri, 30 Jun 2000 14:14:37 +0000 (14:14 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Fri, 30 Jun 2000 14:14:37 +0000 (14:14 +0000)
src/mesa/main/state.c

index cc598c029eff8200598df7cba85c13f783cb5f97..8f52c9fe43ae4dbd2a3f755f47edb17ea392c33d 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: state.c,v 1.20 2000/06/27 04:33:59 brianp Exp $ */
+/* $Id: state.c,v 1.21 2000/06/30 14:14:37 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -1177,8 +1177,12 @@ void gl_update_state( GLcontext *ctx )
       ctx->NeedEyeNormals = GL_FALSE;
 
       if (ctx->Light.Enabled) {
-        if ((ctx->Light.Flags & LIGHT_POSITIONAL) || ctx->Light.NeedVertices){
-           /* Need length for attenuation or need angle for spotlights */
+        if ((ctx->Light.Flags & LIGHT_POSITIONAL) ||
+             ctx->Light.NeedVertices ||
+             !TEST_MAT_FLAGS( &ctx->ModelView, MAT_FLAGS_LENGTH_PRESERVING)) {
+            /* Need length for attenuation or need angle for spotlights
+             * or non-uniform scale matrix
+             */
             ctx->NeedEyeCoords = GL_TRUE;
         }
         ctx->NeedEyeNormals = ctx->NeedEyeCoords;