From c0ef16647424452ba60e165c82c59f5ff64f12d4 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 25 Mar 2008 11:32:31 -0600 Subject: mesa: append fog instructions after parsing if a fog option is set Drivers don't have to worry about it then. --- src/mesa/shader/arbprogparse.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/mesa/shader') diff --git a/src/mesa/shader/arbprogparse.c b/src/mesa/shader/arbprogparse.c index 6782491cc5..6648ed7b71 100644 --- a/src/mesa/shader/arbprogparse.c +++ b/src/mesa/shader/arbprogparse.c @@ -35,6 +35,7 @@ #include "shader/grammar/grammar_mesa.h" #include "arbprogparse.h" #include "program.h" +#include "programopt.h" #include "prog_parameter.h" #include "prog_statevars.h" #include "context.h" @@ -3929,6 +3930,16 @@ _mesa_parse_arb_fragment_program(GLcontext* ctx, GLenum target, _mesa_free_parameter_list(program->Base.Parameters); program->Base.Parameters = ap.Base.Parameters; + /* Append fog instructions now if the program has "OPTION ARB_fog_exp" + * or similar. We used to leave this up to drivers, but it appears + * there's no hardware that wants to do fog in a discrete stage separate + * from the fragment shader. + */ + if (program->FogOption != GL_NONE) { + _mesa_append_fog_code(ctx, program); + program->FogOption = GL_NONE; + } + #if DEBUG_FP _mesa_printf("____________Fragment program %u ________\n", program->Base.ID); _mesa_print_program(&program->Base); -- cgit v1.2.3