From c3626a91cee5034528f3f92c802a8e5947ea5f92 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Tue, 1 Nov 2005 17:25:49 +0000 Subject: Several fp and vp tweaks: - Renumber VERT_RESULT_* values so that they match the numbers of the corresponding FRAG_ATTRIB_ values. - Add ctx->VertexProgram._Current and FragmentProgram._Current values which point to either the current client-supplied program if enabled, or otherwise to the current mesa-internal program. Thus this program is always the correct one for the current state, providing that the mesa flags to turn on automatic generation are enabled. - Add callbacks to ctx->Driver.BindProgram() in texenvprogram.c and t_vp_build.c so that the driver knows when the generated program changes. This is cleaner than trying to code all the possible _NEW_* flags into the driver, and more precise as well. - Add a UsesKill flag to identify fragment programs with that instruction, as these can require special treatment. - Move the FRAG_OUTPUT values to mtypes.h, near to similar defn's. --- src/mesa/shader/arbprogparse.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/mesa/shader/arbprogparse.c') diff --git a/src/mesa/shader/arbprogparse.c b/src/mesa/shader/arbprogparse.c index e8fe869d0b..19c38b6272 100644 --- a/src/mesa/shader/arbprogparse.c +++ b/src/mesa/shader/arbprogparse.c @@ -3013,6 +3013,7 @@ parse_fp_instruction (GLcontext * ctx, GLubyte ** inst, break; case OP_TEX_KIL: + Program->UsesKill = 1; if (parse_fp_vector_src_reg(ctx, inst, vc_head, Program, &fp->SrcReg[0])) return 1; fp->Opcode = FP_OPCODE_KIL; @@ -4014,6 +4015,8 @@ _mesa_parse_arb_program (GLcontext * ctx, const GLubyte * str, GLsizei len, program->NumTexInstructions = program->NumTexIndirections = 0; + program->UsesKill = 0; + program->FPInstructions = NULL; program->VPInstructions = NULL; -- cgit v1.2.3