Split _MaintainTexEnvProgram into two flags _Maintain and _Use. This

restores the ability to run the software driver with program TNL but
tradtional swrast.
This commit is contained in:
Keith Whitwell 2005-12-12 12:57:08 +00:00
parent 3e1a5a38ae
commit 40332059e4
3 changed files with 9 additions and 2 deletions

View file

@ -1237,7 +1237,11 @@ _mesa_initialize_context( GLcontext *ctx,
#endif
ctx->_MaintainTexEnvProgram = (_mesa_getenv("MESA_TEX_PROG") != NULL);
ctx->_UseTexEnvProgram = ctx->_MaintainTexEnvProgram;
ctx->_MaintainTnlProgram = (_mesa_getenv("MESA_TNL_PROG") != NULL);
if (ctx->_MaintainTnlProgram)
ctx->_MaintainTexEnvProgram = 1; /* this is required... */
ctx->FirstTimeCurrent = GL_TRUE;

View file

@ -2803,8 +2803,9 @@ struct __GLcontextRec
struct fragment_program *_TexEnvProgram; /**< Texture state as fragment program */
struct vertex_program *_TnlProgram; /**< Fixed func TNL state as vertex program */
GLboolean _MaintainTexEnvProgram;
GLboolean _MaintainTnlProgram;
GLboolean _MaintainTexEnvProgram;
GLboolean _UseTexEnvProgram;
struct gl_query_state Query; /**< GL_ARB_occlusion_query */

View file

@ -949,7 +949,9 @@ update_program(GLcontext *ctx)
ctx->Driver.NewProgram(ctx, GL_FRAGMENT_PROGRAM_ARB, 0);
ctx->FragmentProgram._Current = ctx->_TexEnvProgram;
ctx->FragmentProgram._Active = GL_TRUE;
if (ctx->_UseTexEnvProgram)
ctx->FragmentProgram._Active = GL_TRUE;
}
}