#include "context.h"
#include "colormac.h"
#include "mtypes.h"
+#include "program.h"
#include "texobj.h"
#include "nvfragprog.h"
}
+static void
+_swrast_update_fragment_program( GLcontext *ctx )
+{
+ if (ctx->FragmentProgram.Enabled) {
+ struct fragment_program *program = ctx->FragmentProgram.Current;
+ _mesa_load_state_parameters(ctx, program->Parameters);
+ }
+}
+
+
#define _SWRAST_NEW_DERIVED (_SWRAST_NEW_RASTERMASK | \
_NEW_TEXTURE | \
if (swrast->NewState & _SWRAST_NEW_TEXTURE_ENV_MODE)
_swrast_update_texture_env( ctx );
- if (swrast->NewState & _NEW_FOG) {
+ if (swrast->NewState & _NEW_FOG)
_swrast_update_fog_state( ctx );
- }
+
+ if (swrast->NewState & _NEW_PROGRAM)
+ _swrast_update_fragment_program( ctx );
swrast->NewState = 0;
swrast->StateChanges = 0;
/*
* Mesa 3-D graphics library
- * Version: 6.0
+ * Version: 6.1
*
* Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
*
printf("execute fragment program --------------------\n");
#endif
- /* XXX: This should go someplace else, but it is safe here (and slow!)
- * - karl
- */
- _mesa_load_state_parameters(ctx, program->Parameters);
-
for (pc = 0; pc < maxInst; pc++) {
const struct fp_instruction *inst = program->Instructions + pc;