summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/light.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main/light.c')
-rw-r--r--src/mesa/main/light.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/mesa/main/light.c b/src/mesa/main/light.c
index 155792af52b..052c04618bc 100644
--- a/src/mesa/main/light.c
+++ b/src/mesa/main/light.c
@@ -1,4 +1,4 @@
-/* $Id: light.c,v 1.37 2001/02/15 01:33:52 keithw Exp $ */
+/* $Id: light.c,v 1.38 2001/02/16 18:14:41 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -421,7 +421,14 @@ _mesa_LightModelfv( GLenum pname, const GLfloat *params )
return;
FLUSH_VERTICES(ctx, _NEW_LIGHT);
ctx->Light.Model.ColorControl = newenum;
- ctx->_TriangleCaps ^= DD_SEPERATE_SPECULAR;
+
+ if ((ctx->Light.Enabled &&
+ ctx->Light.Model.ColorControl==GL_SEPARATE_SPECULAR_COLOR)
+ || ctx->Fog.ColorSumEnabled)
+ ctx->_TriangleCaps |= DD_SEPERATE_SPECULAR;
+ else
+ ctx->_TriangleCaps &= ~DD_SEPERATE_SPECULAR;
+
break;
default:
gl_error( ctx, GL_INVALID_ENUM, "glLightModel" );