diff options
Diffstat (limited to 'src/mesa/drivers/dri/sis/sis_fog.c')
-rw-r--r-- | src/mesa/drivers/dri/sis/sis_fog.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/sis/sis_fog.c b/src/mesa/drivers/dri/sis/sis_fog.c index da36b3d795..fe9a3c95d6 100644 --- a/src/mesa/drivers/dri/sis/sis_fog.c +++ b/src/mesa/drivers/dri/sis/sis_fog.c @@ -53,6 +53,22 @@ sisDDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *params ) switch (pname) { + case GL_FOG_COORDINATE_SOURCE_EXT: + current->hwFog &= ~MASK_FogMode; + switch (ctx->Fog.FogCoordinateSource) + { + case GL_FOG_COORDINATE_EXT: + current->hwFog &= ~MASK_FogZLookup; + break; + case GL_FRAGMENT_DEPTH_EXT: + current->hwFog |= MASK_FogZLookup; + break; + } + if (current->hwFog != prev->hwFog) { + prev->hwFog = current->hwFog; + smesa->GlobalFlag |= GFLAG_FOGSETTING; + } + break; case GL_FOG_MODE: current->hwFog &= ~MASK_FogMode; switch (ctx->Fog.Mode) |