Use NEED_SECONDARY_COLOR() for checking specular state at all times
authorKeith Whitwell <keith@tungstengraphics.com>
Wed, 28 Jan 2004 08:21:05 +0000 (08:21 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Wed, 28 Jan 2004 08:21:05 +0000 (08:21 +0000)
when ctx->_TriangleCaps might be inaccurate (ie while ctx->NewState might
be non-zero).

src/mesa/drivers/dri/i830/i830_state.c
src/mesa/drivers/dri/mga/mgastate.c
src/mesa/drivers/dri/radeon/radeon_lighting.c
src/mesa/drivers/dri/radeon/radeon_state.c

index 7c80e8b..0fde909 100644 (file)
@@ -979,7 +979,7 @@ static void update_specular( GLcontext *ctx )
    I830_STATECHANGE(imesa, I830_UPLOAD_CTX);
    imesa->Setup[I830_CTXREG_ENABLES_1] &= ~ENABLE_SPEC_ADD_MASK;
 
-   if (ctx->_TriangleCaps & DD_SEPARATE_SPECULAR)
+   if (NEED_SECONDARY_COLOR(ctx))
       imesa->Setup[I830_CTXREG_ENABLES_1] |= ENABLE_SPEC_ADD;
    else
       imesa->Setup[I830_CTXREG_ENABLES_1] |= DISABLE_SPEC_ADD;
index 47c425d..2066b93 100644 (file)
@@ -483,7 +483,7 @@ static void updateSpecularLighting( GLcontext *ctx )
    mgaContextPtr mmesa = MGA_CONTEXT(ctx);
    unsigned int specen;
 
-   specen = (ctx->_TriangleCaps & DD_SEPARATE_SPECULAR) ? TMC_specen_enable : 0;
+   specen = NEED_SECONDARY_COLOR(ctx) ? TMC_specen_enable : 0;
 
    if ( specen != mmesa->hw.specen ) {
       mmesa->hw.specen = specen;
index b00c9cb..44e00af 100644 (file)
@@ -550,7 +550,7 @@ void radeonUpdateSpecular( GLcontext *ctx )
    radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
    GLuint p = rmesa->hw.ctx.cmd[CTX_PP_CNTL];
 
-   if ( ctx->_TriangleCaps & DD_SEPARATE_SPECULAR ) {
+   if (NEED_SECONDARY_COLOR(ctx)) {
       p |=  RADEON_SPECULAR_ENABLE;
    } else {
       p &= ~RADEON_SPECULAR_ENABLE;
index 25aa3fa..668fd49 100644 (file)
@@ -738,7 +738,7 @@ static void radeonUpdateSpecular( GLcontext *ctx )
       rmesa->hw.tcl.cmd[TCL_LIGHT_MODEL_CTL] |= RADEON_LIGHTING_ENABLE;
    }
 
-   if ( ctx->_TriangleCaps & DD_SEPARATE_SPECULAR ) {
+   if (NEED_SECONDARY_COLOR(ctx)) {
       assert( (p & RADEON_SPECULAR_ENABLE) != 0 );
    } else {
       assert( (p & RADEON_SPECULAR_ENABLE) == 0 );