goto invalid_enum_error;
if (ctx->Fog.Enabled == state)
return;
- FLUSH_VERTICES(ctx, _NEW_FOG, GL_FOG_BIT | GL_ENABLE_BIT);
+ FLUSH_VERTICES(ctx, _NEW_FOG | _NEW_FF_FRAG_PROGRAM,
+ GL_FOG_BIT | GL_ENABLE_BIT);
ctx->Fog.Enabled = state;
ctx->Fog._PackedEnabledMode = state ? ctx->Fog._PackedMode : FOG_NONE;
break;
goto invalid_enum_error;
if (ctx->Fog.ColorSumEnabled == state)
return;
- FLUSH_VERTICES(ctx, _NEW_FOG, GL_FOG_BIT | GL_ENABLE_BIT);
+ FLUSH_VERTICES(ctx, _NEW_FOG | _NEW_FF_FRAG_PROGRAM,
+ GL_FOG_BIT | GL_ENABLE_BIT);
ctx->Fog.ColorSumEnabled = state;
break;
return;
FLUSH_VERTICES(ctx, _NEW_FOG, GL_FOG_BIT);
ctx->Fog.Mode = m;
- ctx->Fog._PackedEnabledMode = ctx->Fog.Enabled ?
- ctx->Fog._PackedMode : FOG_NONE;
+ if (ctx->Fog.Enabled) {
+ ctx->Fog._PackedEnabledMode = ctx->Fog._PackedMode;
+ ctx->NewState |= _NEW_FF_FRAG_PROGRAM;
+ }
break;
case GL_FOG_DENSITY:
if (*params<0.0F) {
}
if (ctx->Fog.FogCoordinateSource == p)
return;
- FLUSH_VERTICES(ctx, _NEW_FOG, GL_FOG_BIT);
+ FLUSH_VERTICES(ctx, _NEW_FOG | _NEW_FF_VERT_PROGRAM, GL_FOG_BIT);
ctx->Fog.FogCoordinateSource = p;
break;
}
}
if (ctx->Fog.FogDistanceMode == p)
return;
- FLUSH_VERTICES(ctx, _NEW_FOG, GL_FOG_BIT);
+ FLUSH_VERTICES(ctx, _NEW_FOG | _NEW_FF_VERT_PROGRAM, GL_FOG_BIT);
ctx->Fog.FogDistanceMode = p;
break;
}
GLbitfield prog_flags = _NEW_PROGRAM;
if (ctx->FragmentProgram._UsesTexEnvProgram) {
- prog_flags |= _NEW_BUFFERS | _NEW_TEXTURE_OBJECT | _NEW_FOG |
+ prog_flags |= _NEW_BUFFERS | _NEW_TEXTURE_OBJECT |
_NEW_FF_FRAG_PROGRAM | _NEW_RENDERMODE |
_NEW_COLOR | _NEW_TEXTURE_STATE;
}
if (ctx->VertexProgram._UsesTnlProgram)
- prog_flags |= _NEW_FF_VERT_PROGRAM | _NEW_FOG;
+ prog_flags |= _NEW_FF_VERT_PROGRAM;
if (new_state & prog_flags) {
/* When we generate programs from fixed-function vertex/fragment state