aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/tnl/t_vb_light.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/tnl/t_vb_light.c')
-rw-r--r--src/mesa/tnl/t_vb_light.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/mesa/tnl/t_vb_light.c b/src/mesa/tnl/t_vb_light.c
index d0f4981cbd8..bbf43468c03 100644
--- a/src/mesa/tnl/t_vb_light.c
+++ b/src/mesa/tnl/t_vb_light.c
@@ -1,4 +1,4 @@
-/* $Id: t_vb_light.c,v 1.15 2001/07/17 19:39:32 keithw Exp $ */
+/* $Id: t_vb_light.c,v 1.16 2001/12/14 02:51:45 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -168,12 +168,12 @@ static GLboolean run_lighting( GLcontext *ctx, struct gl_pipeline_stage *stage )
/* Make sure we can talk about elements 0..2 in the vector we are
* lighting.
*/
- if (stage->changed_inputs & (VERT_EYE|VERT_OBJ)) {
+ if (stage->changed_inputs & (VERT_EYE|VERT_OBJ_BIT)) {
if (input->size <= 2) {
if (input->flags & VEC_NOT_WRITEABLE) {
- ASSERT(VB->importable_data & VERT_OBJ);
+ ASSERT(VB->importable_data & VERT_OBJ_BIT);
- VB->import_data( ctx, VERT_OBJ, VEC_NOT_WRITEABLE );
+ VB->import_data( ctx, VERT_OBJ_BIT, VEC_NOT_WRITEABLE );
input = ctx->_NeedEyeCoords ? VB->EyePtr : VB->ObjPtr;
ASSERT((input->flags & VEC_NOT_WRITEABLE) == 0);
@@ -295,19 +295,19 @@ static GLboolean run_init_lighting( GLcontext *ctx,
*/
static void check_lighting( GLcontext *ctx, struct gl_pipeline_stage *stage )
{
- stage->active = ctx->Light.Enabled;
+ stage->active = ctx->Light.Enabled && !ctx->VertexProgram.Enabled;
if (stage->active) {
if (stage->privatePtr)
stage->run = run_validate_lighting;
- stage->inputs = VERT_NORM|VERT_MATERIAL;
+ stage->inputs = VERT_NORMAL_BIT|VERT_MATERIAL;
if (ctx->Light._NeedVertices)
stage->inputs |= VERT_EYE; /* effectively, even when lighting in obj */
if (ctx->Light.ColorMaterialEnabled)
- stage->inputs |= VERT_RGBA;
+ stage->inputs |= VERT_COLOR0_BIT;
- stage->outputs = VERT_RGBA;
+ stage->outputs = VERT_COLOR0_BIT;
if (ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR)
- stage->outputs |= VERT_SPEC_RGB;
+ stage->outputs |= VERT_COLOR1_BIT;
}
}
@@ -334,13 +334,16 @@ static void dtr( struct gl_pipeline_stage *stage )
const struct gl_pipeline_stage _tnl_lighting_stage =
{
- "lighting",
+ "lighting", /* name */
_NEW_LIGHT, /* recheck */
_NEW_LIGHT|_NEW_MODELVIEW, /* recalc -- modelview dependency
* otherwise not captured by inputs
- * (which may be VERT_OBJ) */
- 0,0,0, /* active, inputs, outputs */
- 0,0, /* changed_inputs, private_data */
+ * (which may be VERT_OBJ_BIT) */
+ GL_FALSE, /* active? */
+ 0, /* inputs */
+ 0, /* outputs */
+ 0, /* changed_inputs */
+ NULL, /* private_data */
dtr, /* destroy */
check_lighting, /* check */
run_init_lighting /* run -- initially set to ctr */