diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/tnl/t_context.c | 12 | ||||
-rw-r--r-- | src/mesa/tnl/t_context.h | 1 | ||||
-rw-r--r-- | src/mesa/tnl/tnl.h | 3 |
3 files changed, 15 insertions, 1 deletions
diff --git a/src/mesa/tnl/t_context.c b/src/mesa/tnl/t_context.c index 626aa5290e..2c529afd79 100644 --- a/src/mesa/tnl/t_context.c +++ b/src/mesa/tnl/t_context.c @@ -103,6 +103,7 @@ _tnl_CreateContext( GLcontext *ctx ) tnl->LoopbackDListCassettes = GL_FALSE; tnl->CalcDListNormalLengths = GL_TRUE; tnl->AllowVertexFog = GL_TRUE; + tnl->AllowPixelFog = GL_TRUE; /* Hook our functions into exec and compile dispatch tables. */ @@ -146,7 +147,9 @@ _tnl_InvalidateState( GLcontext *ctx, GLuint new_state ) TNLcontext *tnl = TNL_CONTEXT(ctx); if (new_state & (_NEW_HINT)) { - tnl->_DoVertexFog = tnl->AllowVertexFog && (ctx->Hint.Fog != GL_NICEST); + ASSERT(tnl->AllowVertexFog || tnl->AllowPixelFog); + tnl->_DoVertexFog = (tnl->AllowVertexFog && (ctx->Hint.Fog != GL_NICEST)) + || !tnl->AllowPixelFog; } if (new_state & _NEW_ARRAY) { @@ -272,3 +275,10 @@ _tnl_allow_vertex_fog( GLcontext *ctx, GLboolean value ) tnl->AllowVertexFog = value; } +void +_tnl_allow_pixel_fog( GLcontext *ctx, GLboolean value ) +{ + TNLcontext *tnl = TNL_CONTEXT(ctx); + tnl->AllowPixelFog = value; +} + diff --git a/src/mesa/tnl/t_context.h b/src/mesa/tnl/t_context.h index b7aff6c626..e7f561305a 100644 --- a/src/mesa/tnl/t_context.h +++ b/src/mesa/tnl/t_context.h @@ -705,6 +705,7 @@ typedef struct GLboolean CalcDListNormalLengths; GLboolean IsolateMaterials; GLboolean AllowVertexFog; + GLboolean AllowPixelFog; GLboolean _DoVertexFog; /* eval fog function at each vertex? */ diff --git a/src/mesa/tnl/tnl.h b/src/mesa/tnl/tnl.h index 3be222a6e0..d04310fb53 100644 --- a/src/mesa/tnl/tnl.h +++ b/src/mesa/tnl/tnl.h @@ -80,5 +80,8 @@ _tnl_isolate_materials( GLcontext *ctx, GLboolean flag ); extern void _tnl_allow_vertex_fog( GLcontext *ctx, GLboolean value ); +extern void +_tnl_allow_pixel_fog( GLcontext *ctx, GLboolean value ); + #endif |