1 struct gl_fragment_program_state {
2 unsigned char _Enabled;
3 struct gl_fragment_program *_TexEnvProgram;
5 struct gl_shader_state {
6 struct gl_shader_program *CurrentProgram;
9 unsigned int MaxTextureUnits;
12 struct gl_constants Const;
13 struct gl_fragment_program_state FragmentProgram;
14 struct gl_shader_state Shader;
19 unsigned int enabled_units;
21 unsigned int NumArgsRGB:2;
22 unsigned int ModeRGB:4;
23 struct mode_opt OptRGB[3];
31 struct texenv_fragment_program {
32 struct ureg src_previous;
34 emit_combine(struct texenv_fragment_program *p, unsigned int mode)
40 emit_texenv(struct texenv_fragment_program *p,
43 struct state_key *key;
44 emit_combine(p, key->unit[unit].ModeRGB);
46 create_new_program(GLcontext *ctx)
48 struct texenv_fragment_program p;
50 for (; unit < ctx->Const.MaxTextureUnits; ++unit)
51 p.src_previous = emit_texenv(&p, unit);
54 _mesa_UpdateTexEnvProgram()
57 create_new_program(ctx);