move _mesa_load_state_parameters() to state validation stage

This commit is contained in:
Brian Paul 2004-02-27 02:13:29 +00:00
parent 579ea7ff7a
commit db79b5683c
2 changed files with 16 additions and 8 deletions

View file

@ -30,6 +30,7 @@
#include "context.h"
#include "colormac.h"
#include "mtypes.h"
#include "program.h"
#include "texobj.h"
#include "nvfragprog.h"
@ -201,6 +202,16 @@ _swrast_update_fog_state( GLcontext *ctx )
}
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 | \
@ -432,9 +443,11 @@ _swrast_validate_derived( GLcontext *ctx )
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;

View file

@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
* Version: 6.0
* Version: 6.1
*
* Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
*
@ -586,11 +586,6 @@ execute_program( GLcontext *ctx,
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;